【ARTS 打卡】Week01

用户头像
Rex
关注
发布于: 2020 年 05 月 31 日

Algorithm: PlusOne

class Solution {
/**
* @param Integer[] $digits
* @return Integer[]
*/
function plusOne($digits) {
$scale10 = 10; // 十进制
$length = count($digits);
$maxDigit = $length * ($scale10 - 1); // 指定长度的最大值
// 最大值情况
if (array_sum($digits) == $maxDigit) {
$digits = array_fill(0, $length+1, 0);
$digits[0] = 1;
return $digits;
}
for ($i = $length - 1; $i >= 0; $i--) {
// 加1为10,则进一位
if (($digits[$i] + 1) >= $scale10) {
$digits[$i] = 0;
} else {
$digits[$i]++;
break;
}
}
return $digits;
}
}

Review: HTTP Base Authentication

  • Basic Authentication 这篇文章简单介绍了“HTTP基本验证方案”的工作流程和注意要点。

  1. 从客户端浏览器发起请求

  2. 到服务端验证请求头部的Authrization并给客户端响应。如果服务端验证失败就会返回401,并在头部带上www-Authenticate

  3. 浏览器解析它,弹窗输入框,提醒用户用户名和密码错误,并让用户重新输入用户名密码。提交后,服务端重新验证,之后会在响应中带上正确的Authrization(Base64编码),以便下一次客户端请求时会带上它

Tip: Generate Laravel Migration

  • 用Laravel框架经常会用到Migration,它常用于首次初始化启动项目时,运行它能初始化创建好数据库的数据表,十分有用。

class CreateAdminTasksTable extends Migration
{
public function up()
{
Schema::create(‘admin_tasks’, function (Blueprint $table) {
$table->increments(‘id’);
$table->string(‘name’, 128)->comment(‘管理员任务名称’);
$table->text(‘description’)->comment(‘管理员任务说明’);
$table->timestamps();
});
}
  • 但是对于已创建好数据库表的项目来说,就不是很友好了,得一行行写定义每个字段。用Sequel Pro的Generate Laravel Migration插件就能解决,它能生成Migration文件。

  • 但是它有个地方不够严谨和敏感,对于声明为int的字段,且需要设置字段的默认值为0default 0时,那它生成的SQL时会丢弃掉default 0

Share

《程序员的数学》笔记



发布于: 2020 年 05 月 31 日 阅读数: 71
用户头像

Rex

关注

还未添加个人签名 2018.06.14 加入

还未添加个人简介

评论

发布
暂无评论
【ARTS打卡】Week01