早教吧 育儿知识 作业答案 考试题库 百科 知识分享

一道非常简单的java题把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串.接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母.得到的新串再进行删除

题目详情
一道非常简单的java题
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串.
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母.
得到的新串再进行删除奇数位置字母的动作.如此下去,最后只剩下一个字母,请写出该字母.
答案是一个小写字母,请通过浏览器提交答案.不要填写任何多余的内容.
StringBuffer base = new StringBuffer();
for (int i = 0; i < 106; i++) {
base.append("abcdefghijklmnopqrs");
}
Vector Vector = new Vector();
for (int i = 0; i < base.length(); i++) {
Vector.add(base.charAt(i));
}
while(Vector.size()>1)
{
for (int i=0;i
▼优质解答
答案和解析
这里这么改
        while(Vector.size()>1)
        {
            //总共的个数
            int beginCount = Vector.size();
            //如果总数是偶数提前一位,从最后一个奇数开始
            if(beginCount % 2 == 0){
                 beginCount -= 1;
            }
            for (int i=beginCount - 1;i >= 0;i-=2) {
                Vector.remove(i);
            }    
        }
记住最重要的一点,java的集合类,你要想remove...一定要倒着来,不然每次的顺序都会发生变化,remove的位置也不是预期的位置,如果从后面开始,remove掉不影响前面的顺序.