将字符串添加到数组中,通过增加字符串的长度来判断列表是否有序。如果不是,则打印违反此类排序的第一个元素的索引。 如果数组中的字符串不同,则一切正常,例如,输入
113
13476
Neutral
wa
答案:索引(wa)3输出。
但是如果是这样的话:
123
12345
123
答案:索引 (123) - 0 但正确答案是索引 2
public class Solution {
public static void main(String[] args) throws IOException {
Scanner scan = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
for (int i = 0; i < 4; i++) {
list.add(scan.nextLine());
}
int count = 0;
for(int i = 0; i < list.size(); i++){
if(count+2 > list.size()) {
break;
}
if(list.get(i+1).length() <= list.get(i).length()){
System.out.println(list.indexOf(list.get(i+1)));
break;
}
count = count + 1;
}
}
}
最佳答案
你应该改变
list.indexOf(list.get(i+1))
到
i+1
因为如果 List
中多次出现相同的 String
,您希望返回违反顺序的第一个元素的索引,即 i+1
(而不是等于该元素的第一个 String
的索引)。
顺便说一句,即使您的 List
中没有重复元素,使用 list.indexOf(list.get(i+1))
也是没有意义的简单的 i+1
。
关于java - 无法确定数组中的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55509146/