1750. Minimum Length of String After Deleting Similar Ends

ss
Feb 6, 2021

--

這題真的有點可惜, 就差那麼一點點了

我們先分析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;
}
};

--

--

ss
ss

No responses yet