字串消除

2021-06-18 21:17:29 字數 1011 閱讀 7124

給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c; 有ac或ca連續出現時,你可以把它們替換為字母b; 有bc或cb 連續出現時,你可以把它們替換為字母a。 你可以不斷反覆按照這個規則進行替換,你的目標是使得最終結果所得到的字串盡可能短,求最終結果的最短長度。 輸入:字串。長度不超過200,僅由abc三種小寫字母組成。 輸出: 按照上述規則不斷消除替換,所得到的字串最短的長度。 例如:輸入cab,輸出2。因為我們可以把它變為bb或者變為cc。           輸入bcab,輸出1。儘管我們可以把它變為aab -> ac -> b,也可以把它變為bbb,但因為前者長度更短,所以輸出1。

根據別人的思路寫出的**,但是還是太慢了。

public class main 

private static int samechar(string s)

else

if(max<=c)

return max;

} private static string chagestring(string s,int a)

else

if(sub.equals("ab")||sub.equals("ba"))

else if(sub.equals("ac")||sub.equals("ca"))

else if(sub.equals("bc")||sub.equals("cb"))

} else if(a==1)

else

if(sub.equals("ab")||sub.equals("ba"))

else if(sub.equals("ac")||sub.equals("ca"))

else if(sub.equals("bc")||sub.equals("cb"))

} return s;

} public static void main(string args)

}

字串消除

題目詳情 給定乙個字串,僅由a,b,c 3種小寫字母組成。當出現連續兩個不同的字母時,你可以用另外乙個字母替換它,如 有ab或ba連續出現,你把它們替換為字母c 有ac或ca連續出現時,你可以把它們替換為字母b 有bc或cb 連續出現時,你可以把它們替換為字母a。你可以不斷反覆按照這個規則進行替換,...

字串消除

小hi最近在玩乙個字元消除遊戲。給定乙個只包含大寫字母 abc 的字串s,消除過程是如下進行的 1 如果s包含長度超過1的由相同字母組成的子串,那麼這些子串會被同時消除,餘下的子串拼成新的字串。例如 abccbcccaa 中 cc ccc 和 aa 會被同時消除,餘下 ab 和 b 拼成新的字串 a...

消除字串

蒜頭君喜歡中心對稱的字串,即回文字串。現在蒜頭君手裡有乙個字串 s s,蒜頭君每次都會進行這樣的操作 從 s s 中挑選乙個回文的子串行,將其從字串 s s 中去除,剩下的字元重組成新的字串 ss。蒜頭君想知道,最少可以進行多少次操作,可以消除整個字串。輸入一行。輸入乙個字串 s s 1 leq l...