Leetcode P1750 Java双指针
ideas
首先定义两个指针一个从字符串最左侧开始,一个从最右侧开始
int n = s.length();
int l = 0, r = n-1;
接下来我们进行判断,如果我们l < r 并且我们 s[l] == s[r] 那么就满足我们移除的条件,我们把左侧和右侧的连续一样的字符删除掉也就是左指针++ 又指针–
while (l < r && s.charAt(l) == s.charAt(r)){
char c = s.charAt(l);
while (l <= r && c == s.charAt(l)) l++;
while (l <= r && c == s.charAt(r)) r--;
}
最后我们通过 r - l +1就能计算出我们最终的最简长度
code
public int minimumLength(String s) {
int n = s.length();
int l = 0, r = n-1;
while (l < r && s.charAt(l) == s.charAt(r)){
char c = s.charAt(l);
while (l <= r && c == s.charAt(l)) l++;
while (l <= r && c == s.charAt(r)) r--;
}
return r-l+1;
}