第五届蓝桥杯JavaB组第三题:猜字母

第五届蓝桥杯JavaB组第三题:猜字母

  • 题目描述:

把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。

得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

  • 解析:
    • 首先要考虑一个合适的容器存放字母串1
    • 在这里,使用了StringBuilder,因为它的可变性,不同于数组的是,该类删除一个子串后会将后面的默认前移。
      • 初始化为字符串1
      • 所以,当我们删除第一个字符的时候,得到了一个全新的字符串2
      • 且对于字符串1来说删除的第3个位置变成了删除字符串2的第2个位置,删除之后得到字符串3
      • 对于字符串1来说,删除第5个位置的字符串变成了删除字符串3的第3个位置
      • 以此类推…
  • 上代码
public class Main03 {
	
	//猜字母
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		StringBuilder sb = new StringBuilder();
		
		for(int i=1;i<=106;i++) {
			sb.append("abcdefghijklmnopqrs");
		}
        
		while(sb.length()!=1) {
			for(int i=0;i<sb.length();i++) {
				sb.deleteCharAt(i);
			}
		}
		System.out.println(sb);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值