題目描述:
給你乙個只包含字元 『a』,『b』 和 『c』 的字串 s ,你可以執行下面這個操作(5 個步驟)任意次:
選擇字串 s 乙個 非空 的字首,這個字首的所有字元都相同。
選擇字串 s 乙個 非空 的字尾,這個字尾的所有字元都相同。
字首和字尾在字串中任意位置都不能有交集。
字首和字尾包含的所有字元都要相同。
同時刪除字首和字尾。
請你返回對字串 s 執行上面操作任意次以後(可能 0 次),能得到的 最短長度 。
示例 1:
輸入:s = 「ca」
輸出:2
解釋:你沒法刪除任何乙個字元,所以字串長度仍然保持不變。
示例 2:
輸入:s = 「cabaabac」
輸出:0
解釋:最優操作序列為:
示例 3:
輸入:s = 「aabccabba」
輸出:3
解釋:最優操作序列為:
1 <= s.length <= 105
s 只包含字元 『a』,『b』 和 『c』 。
方法1:
(1)貪心;
(2)盡量將兩端相同的字元刪除,在第一次不相同的位置跳出迴圈;
class
solution
++left;
while
(left < right&&s[right]
== s[right -1]
)--right;
}else
}//返回長度
return right0:right - left +1;
}};
去掉字串兩端的空格
去掉字串兩端的空格,用正規表示式 去掉字串兩端的空格 public static string delspace string str throws exception string regstartspace string regendspace 連續兩個 replaceall 第乙個是去掉前端的...
c語言 刪除字串中相同的字元
這是之前做pat乙級1029舊鍵盤時遇到的乙個問題,大概就是我現在得到了乙個字串,但是其中相同的字元只需要輸出一次,我當時沒能想出好的解決辦法,就在網上覆制了一段 但是發現那個刪除重複字元的 也沒看懂。直到今天看到了乙個刪除字串中給定的字元的 一步步執行下就理解了。先貼下我複製的 void main...
交換字元使得字串相同
有兩個長度相同的字串s1 和s2,且它們其中只含有字元 x 和 y 你需要通過 交換字元 的方式使這兩個字串相同。每次 交換字元 的時候,你都可以在兩個字串中各選乙個字元進行交換。交換只能發生在兩個不同的字串之間,絕對不能發生在同乙個字串內部。也就是說,我們可以交換s1 i 和s2 j 但不能交換s...