28.蓝桥杯2014第3题猜字母

标题:猜字母

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

接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。

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

思路:
将a~s19个字母合成一个字符串s
再将字符串s循环106次存入一个ArrayList数组里面
因为s.charAt()方法返回的是char类型,所以 + ""加一个空的字符串来自动转为String类型

一个while循环来判断list的长度是否为1,如果为1就证明剩下一个元素了,停止循环
因为题目要求删除第一个字母......所有奇数位置,因为数组开始的角标是从0开始的,所以我们要删除的是 0 2 4 6 8.....角标,那么我们将所有能将%2==0的角标都设置为 "0",在下一个for循环判断中,只要遇到是0的,都remove删除掉,
注意要 i--,/为什么要i--,因为原来i角标被删除了,后面的所有的元素向前走一位,变成了i角标的元素,所以要i--,然后循环会再i++,这样又可以判断一次i的角标,
答案: q

package 第五届;

import java.util.ArrayList;

public class B3_1 {

    public static void main(String[] args) {
        char a = 'a';
        String s= "";
        ArrayList list = new ArrayList<>();
        for(int i=0;i<19;i++) {
            s+=a++;
        }
        for(int i=0;i<106;i++) {
            for(int j =0;j

你可能感兴趣的:(28.蓝桥杯2014第3题猜字母)