2018-10-16-weekly
Algorithm
-
What 给定字符串 s 和 t ,判断 s 是否为 t 的子序列。如,"ace"是"abcde"的一个子序列,而"aec"不是)。
-
How 可以用贪心算法,遍历母串t,时间复杂度是O(N)。定义两个串的索引,如果发现t的索引和子串s的索引值相等,移动子串s的索引,继续比对下一个目标索引值。
-
Key Codes
class Solution {
public boolean isSubsequence(String s, String t) {
int first=0;
int sec=0;
while(first<s.length() && sec<t.length()){
if(s.charAt(first)== t.charAt(sec)){
first++;
}
sec++;
}
if(first==s.length()) return true;
else return false;
}
}
Review
-
What 如何用正确的方式做你喜欢的事
-
How
- 弄清楚我们想要花费时间和注意力的是什么,然后在我们的工艺上努力使我们的平台成为可能
- 建立自己的平台,并一步一步地制定自己的工作。
Tip
-
What 注册注解处理器:怎样将处理器MyProcessor注册到javac中
-
How
- 必须提供一个.jar文件。就像其他.jar文件一样,你打包你的注解处理器到此文件中。
- 并且,在你的jar中,你需要打包一个特定的文件javax.annotation.processing.Processor到META-INF/services路径下。
- 打包进MyProcessor.jar中的javax.annotation.processing.Processor的内容是,注解处理器的合法的全名列表,每一个元素换行分割
com.example.MyProcessor
com.foo.OtherProcessor
net.blabla.SpecialProcessor
- 把MyProcessor.jar放到你的builpath中,javac会自动检查和读取javax.annotation.processing.Processor中的内容,并且注册MyProcessor作为注解处理器。