一道非常简单的java题把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串.接下来删除第1

一道非常简单的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
特大胖子 1年前 已收到1个回答 举报

我ggcl 幼苗

共回答了21个问题采纳率:90.5% 举报

这里这么改
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掉不影响前面的顺序.

1年前

9
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 16 q. 0.018 s. - webmaster@yulucn.com