1750 刪除字串兩端相同字元後的最短長度

2021-10-25 15:36:57 字數 931 閱讀 7941

題目描述:

給你乙個只包含字元 『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...