提交 b687629c 编写于 作者: L liu13

20190130

上级 f7fb3a41
package code;
/*
* 118. Pascal's Triangle
* 题意:上层元素相邻的和,两边补1,得到下层元素
* 难度:Easy
* 分类:Array
* 思路:迭代计算
* Tips:
*/
import java.util.ArrayList;
import java.util.List;
public class lc118 {
public List<List<Integer>> generate(int numRows) {
List<List<Integer>> res = new ArrayList<>();
if(numRows==0) return res;
List<Integer> ls = new ArrayList();
ls.add(1); //第一层1个1
res.add(ls);
numRows--;
if(numRows==0) return res;
while(numRows>0){
ArrayList<Integer> temp = new ArrayList();
temp.add(1);
for (int i = 0; i < ls.size()-1 ; i++) {
temp.add(ls.get(i)+ls.get(i+1));
}
temp.add(1);
res.add(temp);
ls = temp;
numRows--;
}
return res;
}
}
package code;
/*
* 125. Valid Palindrome
* 题意:判断是否为回文
* 难度:Easy
* 分类:Two Pointers, String
* 思路:两个指针。另一种是正则表达式替换数字,字母为空格,再反转,判断是否相等。
* Tips:记下另一种方法。第一种方法Bingo!
* lc234, lc5
*/
public class lc125 {
public static void main(String[] args) {
System.out.println(isPalindrome("A man, a plan, a canal: Panama"));
}
public static boolean isPalindrome(String s) {
int begin = 0;
int end = s.length()-1;
s = s.toLowerCase(); //转为小写
while(begin<end && !(helper(s.charAt(begin)))) begin++;
while(begin<end && !(helper(s.charAt(end)))) end--;
while(begin<end){
if(s.charAt(begin)==s.charAt(end)){
begin++;
end--;
while(begin<end && !(helper(s.charAt(begin)))) begin++;
while(begin<end && !(helper(s.charAt(end)))) end--;
}else{
return false;
}
}
return true;
}
public static boolean helper(Character ch){ //过滤非字符数字
if(Character.isAlphabetic(ch)||Character.isDigit(ch)) return true;
return false;
}
public boolean isPalindrome2(String s) {
String actual = s.replaceAll("[^A-Za-z0-9]", "").toLowerCase();
String rev = new StringBuffer(actual).reverse().toString();
return actual.equals(rev);
}
}
......@@ -5,6 +5,7 @@ package code;
* 难度:Medium
* 分类:String, Dynamic Programming
* Tips:从后往前遍历,保证后续dp时,子情况已计算出
* 还有一种思路是从中间往两边扩展,中间有两种情况,一种一个字符,一种两个字符
*/
public class lc5 {
public static void main(String[] args) {
......
......@@ -75,13 +75,17 @@ Language: Java
| 098 [Java](./code/lc98.java)
| 101 [Java](./code/lc101.java)
| 102 [Java](./code/lc102.java)
| 103 [Java](./code/lc103.java)
| 104 [Java](./code/lc104.java)
| 105 [Java](./code/lc105.java)
| 108 [Java](./code/lc108.java)
| 114 [Java](./code/lc114.java)
| 114 [Java](./code/lc116.java)
| 114 [Java](./code/lc118.java)
| 121 [Java](./code/lc121.java)
| 122 [Java](./code/lc122.java)
| 124 [Java](./code/lc124.java)
| 125 [Java](./code/lc125.java)
| 128 [Java](./code/lc128.java)
| 136 [Java](./code/lc136.java)
| 139 [Java](./code/lc139.java)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册