ARTS Week4

发布于: 19 小时前

Algorithm

最长回文子串

回文串是从左读和从右读是一样的结果。那么它中间向两边扩散都是一样的。所以,我们枚举两种情况,回文串的中间刚好是一个字符,或者是两个字符。然后向左右移动,如果左右字符相等,则继续扩散;如果不相等,则返回长度。

然后我们遍历字符串的每个字符,以此为中心向两边扩散,取最长的子串。

Review

FP Basics E2

分享的是Bob叔的函数式编程第二篇。

这篇博文主要是讲了函数式的基本内容。一个函数接收一个函数作为参数,并且返回结果也是一个函数。也就是说,函数和普通的数据类型一样,比如整型,字符等。

Tip

PHP的迭代器接口 Iterator 可在内部迭代自己的外部迭代器或类的接口

<?php
class User
{
public $name;
public $age;
}
$user = new User;
$user->name = "Candy";
$user->age = 15;
foreach ($user as $key => $val) {
echo "{$key}: {$val}\n";
}

上面这段代码会输出

name: Candy
age: 15

如果我们想让他的输出结果是这样的,并且不能修改User类以外的代码,那么Iterator接口可以帮我们实现。

姓名: Candy
年龄: 15

<?php
class User implements Iterator
{
public $name;
public $age;
public function rewind() {
reset($this);
}
public function current() {
return current($this);
}
public function key() {
return key($this) == 'name' ? '姓名' : '年龄';
}
public function next() {
return next($this);
}
public function valid() {
return $this->current() !== false;
}
}

这样,在遍历 key 的时候就会输出文字了。

Share

Java 代理

文章很清晰地介绍了Java代理的内容,比较清晰。代理分为静态代理和动态代理两种。静态代理的代理类需要自己编写代码写成。而动态代理有jdk和cglib,代理类可以通过 Proxy.newInstance()或者ASM 来直接生成。

用户头像

时之虫

关注

还未添加个人签名 2020.05.25 加入

还未添加个人简介

评论

发布
暂无评论
ARTS Week4