下面这段代码已经通过了,是我参考了好几个人的代码写出来的,但还是有些不明白,特来请教各位大佬,
就是下面的if判断处,我列出了我的疑问,望各位大佬指教
import java.util.*;
public class Main {
public static void main(String args[]) {
HashSet<String> set = new HashSet<String>();
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for (int i = 0; i < n; i++) {
String s = sc.nextLine();
//为何要加这个if判断,如果不加,要报数组越界
//还有为何要做i--,不做i--,通过率只有30%
if (s.equals("")) {
i--;
continue;
}
set.add(calc(s));
}
System.out.println(set.size());
}
public static String calc(String s) {
List<String> l = new ArrayList<String>();
for (int i = 0; i < s.length(); i++) {
String tmp = "";
for (int j = 0; j < s.length();/*不是敏感词*/ j++) {
tmp = s.substring(j) + s;
tmp = tmp.substring(0, s.length());
l.add(tmp);
}
}
Collections.sort(l);
return l.get(0);
}
}