(LeetCode 每日一题) 1957. 删除字符使字符串变好 (字符串)
题目:1957. 删除字符使字符串变好
思路:字符串,时间复杂度0(n)。
判断s或e中三个连续的字符是否相等即可。
C++版本:
class Solution {
public:string makeFancyString(string s) {string e="";int ans=0;for(int i=0;i<s.size();i++){if(ans>=2 && s[i]==e[ans-1]&&e[ans-2]==e[ans-1]){continue;}e.push_back(s[i]);ans++;} return e;}
};
JAVA版本:
class Solution {public String makeFancyString(String s) {StringBuilder e=new StringBuilder();int ans=0;char[] c=s.toCharArray();for(int i=0;i<c.length;i++){if(ans>=2 && c[i]==c[i-1]&&c[i-2]==c[i-1]){continue;}e.append(c[i]);ans++;} return e.toString();}
}
GO版本:
func makeFancyString(s string) string {e:=[]byte{}ans:=0for i:=0;i<len(s);i++ {if ans>=2 && s[i]==e[ans-1] &&e[ans-2]==e[ans-1] {continue}e=append(e,s[i])ans++}return string(e)
}