这几天学完了python,马上就要考试了,然后一下子就忘记背单词和写题了,狠狠的补回来!!!
125. 验证回文串
题目:


题解:
java
class Solution {
public boolean isPalindrome(String s) {
StringBuilder str = new StringBuilder();
for(int i=0;i<s.length();i++) {
char x = Character.toLowerCase(s.charAt(i));
if(Character.isLetterOrDigit(x)) {
str.append(x);
}
}
if(str.toString().equals(str.reverse().toString())){
return true;
}
else {
return false;
}
}
}
392. 判断子序列
题目:


题解:
java
class Solution {
public boolean isSubsequence(String s, String t) {
if(s.length()>t.length()) {
return false;
}
else if(s.length()==t.length() && s.length()!=0 && s.equals(t) ){
return false;
}
else {
int i=0, j=0;
while(j<t.length() && i<s.length()) {
//说明两个字符匹配
if(s.charAt(i)==t.charAt(j)) {
i++;
j++;
}
//不匹配
else {
//说明父子串已经走完了,但是子串还没有走完
if(j==t.length()-1) {
return false;
}
j++;
}
}
// 如果子串没有到达最后一个字符+1的位置,说明子序列没走完,匹配不上
if(i!=s.length()) {
return false;
}
return true;
}
}
}
167. 两数之和|| - 输入有序数组
题目:


题解:
java
class Solution {
public int[] twoSum(int[] numbers, int target) {
int i=0,j=numbers.length-1;
int[] news=new int[2];
while(i<j) {
if(numbers[i]+numbers[j]==target) {
news[0]=i+1;
news[1]=j+1;
break;
}
else {
if(numbers[i]+numbers[j]<target) {
i++;
}
else {
j--;
}
}
}
return news;
}
}
11. 盛最多水的容器
题目:


题解:
java
class Solution {
public int maxArea(int[] height) {
int i=0, j=height.length-1;
int max = 0;
while(i<j) {
max=Math.max(Math.min(height[i],height[j])*(j-i),max);
//移动较小的墙的点
//这样相当于增加了最大水量,因为以两边最小的墙高为高
if(height[i]<height[j]) {
i++;
}
else {
j--;
}
}
return max;
}
}