1.LeetCode344反转字符串
思路:采用双指针
定义变量 l 为数组最左下标,变量 r 为数组最右下标
若下边所对应元素相等,则 l++ ;r--
若下边所对应元素相等,则交换两个元素,并且 l++ ;r--
class Solution {
public void reverseString(char[] s) {
int l=0; //代表字符数组的最左下标
int r=s.length-1;//代表字符数组的最右下标
char temp;
while(l<r){
if(s[l]==s[r]){ //若相等,则l++,r--;
l++;
r--;
}else{
temp = s[l]; //交换
s[l] =s[r];
s[r] = temp;
l++;
r--;
}
}
}
}
2.LeetCode28实现 strStr() 函数
思路:采用双指针
class Solution {
public int strStr(String haystack, String needle) {
int i=0; //指向第一个字符串
int j=0; //指向第二个字符串
while(i<haystack.length()&&j<needle.length()){ //只要一个不满足,循环结束
if(haystack.charAt(i)==needle.charAt(j)){
i++;
j++;
}else{
i=i-j+1;
j=0;
}
}
if(j==needle.length()){ //while循环结束后,要判断是否找到,
return i-j;
}else{
return -1;
}
}
}