給定乙個字串,僅由a,b,c 3種小寫字母組成。

2021-12-29 20:14:25 字數 1610 閱讀 5754

package com.boco.study;

/** * 題目詳情

給定乙個字串,僅由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。*執行結果大於3秒,悲劇!

*/public class main

public static string shortstring(string s)elseelse if(s.charat(0)=='a'&&s.charat(1)=='c')else if(s.charat(0)=='b'&&s.charat(1)=='a')else if(s.charat(0)=='b'&&s.charat(1)=='c')else if(s.charat(0)=='c'&&s.charat(1)=='a')else if(s.charat(0)=='c'&&s.charat(1)=='b')

}}else if(length==1)

else if(length>=3)else

}elseelse if(s.charat(0)=='a'&&s.charat(1)=='c')else if(s.charat(0)=='b'&&s.charat(1)=='a')else if(s.charat(0)=='b'&&s.charat(1)=='c')else if(s.charat(0)=='c'&&s.charat(1)=='a')else if(s.charat(0)=='c'&&s.charat(1)=='b')}}

return result;

}/**

* 引數:

* 1.操作的字串。

* 函式內的變數:

* 1.當前滯留的字串。(準確的說是新產生的字串)。

* 2.當前操作的字串的長度。

* 操作方法:

* 1.先比較下乙個字元,如果不同,按照替換規則替換成新的字串。接著執行替換函式。

* 2.如果相同。保留當前位置以前的字串,將剩下的字串繼續執行替換函式。

* 3.將滯留的字串的最後乙個字元和返回的字串進行相加,接著執行替換函式

* 迴圈結束的條件:

* 1.執行替換函式後返回的結果為1.

* 2.執行替換函式後返回的結果是2,但是兩個字元相等。

* 返回的結果:

* */

public static void main(string args) else if(i%3==1)else if(i%3==2)

}main.minlength(string);

}}

給定乙個字串,僅由a,b,c 3種小寫字母組成。

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

簡化僅由a,b,c 3種小寫字母組成的字串

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

在乙個字串中尋找另外乙個字串

在乙個字串中尋找另外乙個字串 public class text foundit true break test system.out.println foundit?found it didn t find it 該段程式有點難以理解,主要就是if語句的理解,if searchme.charat ...