题3-猜字母

题目

猜字母
把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。

解题思路

1、 需要每次对元素进行操作,所有我们考虑放在一个list集合里面,然后对里面的元素进行操作,循环将list里的奇数元素删除即可,但是这里需要注意的是,list里面remove完一个元素后,会影响索引位置,所有我们可以先将所有奇数位置上的元素替换,然后再去掉就可以了。
2、 第二种思路是,先把元素存入char数组里面,然后通过两个增长速率不同的变量,完成对char数组的更新,重复循环,直到元素剩余一个输出即可。

参考代码

第一种思路

package JavaB14;


//标题:猜字母
//把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
//接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
//得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
//答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。


import java.util.ArrayList;
import java.util.List;

public class three {
	public static void main(String[] args) {
		List<String> list = new ArrayList<String>();
		for(int i=0;i<106;i++) {
		list.add("a");
		list.add("b");
		list.add("c");
		list.add("d");
		list.add("e");
		list.add("f");
		list.add("g");
		list.add("h");
		list.add("i");
		list.add("j");
		list.add("k");
		list.add("l");
		list.add("m");
		list.add("n");
		list.add("o");
		list.add("p");
		list.add("q");
		list.add("r");
		list.add("s");
		
		}
		System.out.println(list.size());
		
		find(list);
	
	}
	
	public static void find(List<String> list) {
		while(list.size()>1) {
			for(int i=0;i<list.size();i++) {
				if(i%2==0) {
					list.set(i, "1");
				}
				
			}
			for(int i=0;i<list.size();i++) {
				list.remove("1");
				
			}
		
			
			}
		System.out.println(list);
	}
	
		
}

第二种思路

package JavaB14;


public class three2 {
	public static void main(String[] args) {
		char [] ch=new char[2014];
		int index=0;
		for(int i=0;i<106;i++) {
			for(int j=0;j<19;j++) {
				ch[index++]=(char) ('a'+j);
			}
		}
		
		int len=2014;
		while(len!=1) {
		int k=0;
		for(int i=1;i<len;i+=2) {
			ch[k++]=ch[i];
		}
		len=k;
		}
		System.out.println(ch[0]);
		
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值