這題真的有點可惜, 就差那麼一點點了
我們先分析l r的case
a b b a
l r
--------
a b b a
l r--------
a b b a
r l
可以注意到, 當在下一run的時候l就會大於r了, 這就代表完全match
a b a
l r
-------
a b a
lr
------
這邊就停下後, 就會跳出回圈, 發現兩個指針指向同一個的話, 代表餘留一個字母
關鍵是在你要去判別怎樣就是match的情況, 這是在Bweek下我沒有察覺的
class Solution {
public:int minimumLength(string s) {
int l = 0 ;
int r = s.size() - 1;
while(l < r && s[l] == s[r]){
char sp = s[l];
while(l <= r && s[l] == sp){
l++;
}
while(l <= r && s[r] == sp){
r--;
}
}
return l > r ? 0 : r - l + 1;
}
};