通過萬歲!!!
- 題目:給你一個字符串,然后讓你刪除幾個字符串,讓他變成好串,好串的定義就是不要出現連續的3個一樣的字符。
- 思路:首先就是要遍歷字符串。我們將要返回的字符串定義為ret,我們需要定義一個變量tmp和一個字符ch,ch表示ret的最后一個字符,而tmp表示這個字符在ret的尾部重復的次數。如果遍歷到i時,第i字符等于ch,然后看tmp+1是不是等于3了,如果等于3,則表示不能加入,則繼續for循環就好了。如果不等于3,則表示這個字符串還可以繼續加入到ret中。則進行加入即可。但是如果第i個字符不等于ch,則直接將其加入到ret中,并且將tmp設為1。
- 技巧:字符串遍歷
java代碼
class Solution {public String makeFancyString(String s) {StringBuilder sb = new StringBuilder();int tmp = 1;char ch = s.charAt(0);sb.append(ch);for (int i = 1; i < s.length(); i++) {if (s.charAt(i) == ch) {if (tmp + 1 != 3) {tmp++;sb.append(ch);}} else {tmp = 1;ch = s.charAt(i);sb.append(ch);}}return sb.toString();}
}
- 總結:這種題目跟爬樓梯的有些類似,都是要記錄當前的這個位置的一些狀態。