猜字母
把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。
解法:
活用java集合:LinkedList
import java.util.LinkedList;
public class Main{
private static char[] data= {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s'};
public static void main(String[] args) {
LinkedList<Character> list = new LinkedList();
list.add('!');
for(int i=1;i<=106;i++) {
for(int j=0;j<data.length;j++) {
list.add(data[j]);
}
}
while(list.size()!=2) {
for(int i=list.size()-1;i>0;i--) {
if(i%2!=0) {
list.remove(i);
}
}
}
System.out.println(list.get(1));
}
}