*
* 把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。
*/
import java.util.ArrayList;
import java.util.List;
public class guess {
public static void main(String[] args) {
String s="";
for(int i=1;i<=106;i++) {
s=s+"abcdefghijklmnopqrs";
}
// 把长度为2014的字符串放到集合中,因为删除操作比较简单
List<Character>list=new ArrayList<Character>();
for(int i=0;i<s.length();i++) {
list.add(s.charAt(i));
}
//利用死循环一直删除1,3,5,7位置
while(true) {
// 删除奇数标记偶数
// 因为删除过后会自动往前补齐,所以要先标记下标为偶数的,在删除下标为偶数的
for(int i=0;i<list.size();i=i+2) {
list.set(i,'0');
}
for(int i=0;i<list.size();i++) {
if(list.get(i)=='0') {
list.remove(i);
}
}
if(list.size()==1) {
//输出list,会变成带[],所以输出list.get(0);
System.out.println(list.get(0));
break;
}
}
}
}