1. 程式人生 > 其它 >第五屆藍橋杯大賽省賽真題-填空題-猜字母(Java實現)

第五屆藍橋杯大賽省賽真題-填空題-猜字母(Java實現)

技術標籤:java藍橋杯

猜字母

    把abcd...s共19個字母組成的序列重複拼接106次,得到長度為2014的串。
    接下來刪除第1個字母(即開頭的字母a),以及第3個,第5個等所有奇數位置的字母。
    得到的新串再進行刪除奇數位置字母的動作。如此下去,最後只剩下一個字母,請寫出該字母。
答案是一個小寫字母,請通過瀏覽器提交答案。不要填寫任何多餘的內容。

解題思路:
String會記憶體溢位,用StringBuilder,StringBuilder的好處就是修改多次有優勢

String、StringBuffer和StringBuilder的區別

  • String類是不可變類,即一旦一個String物件被建立以後,包含在這個物件中的字元序列是不可改變的,直至這個物件被銷燬。
  • StringBuffer物件是一個字元序列可變的字串,它沒有重新生成一個物件,而且在原來的物件中可以連線新的字串
  • StringBuilder類也代表可變字串物件.StringBuffer是執行緒安全的,而StringBuilder則沒有實現執行緒安全功能,所以效能略高。
package 第五屆省賽;

public class _1猜字母 {
	public static void main(String[] args) {
		StringBuilder s = new StringBuilder("abcdefghigklmnopqrs");
		for(int i=1;
i<=105;i++) s.append("abcdefghijklmnopqrs"); while(s.length()>1) { // System.out.println("長度:"+s.length()); StringBuilder s1 = new StringBuilder(); for(int i=1; i<s.length(); i+=2) s1.append(s.charAt(i)); s = s1; } System.out.println(s); } }

結果

q