【发布时间】:2019-09-27 12:52:20
【问题描述】:
我有一个字符串Unitedin。
这里 char "n" 出现在索引 1 和索引 6 处;索引号之间的差异是5
类似地,“i”出现在索引 2 和索引 5。差异是 3。
我需要按照输出端差值的升序打印字符。
挑战是我不能使用任何类型的 数组列表或列表或 hashMap 或设置或链接哈希等
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
StringBuilder temp = new StringBuilder();
StringBuilder output = new StringBuilder();
System.out.println("Enter a string : ");
String instring = in.next();
for (int i = 0; i < instring.length(); i++) {
for (int j = i + 1; j < instring.length(); j++) {
if (instring.charAt(i) == instring.charAt(j)) {
temp.append(instring.charAt(i));
}
}
}
for (int m = 0; m < temp.length(); m++) {
for (int p = m + 1; p < temp.length(); p++) {
if (m == temp.length() - 1) {
output.append(temp.charAt(m));
} else if (instring.lastIndexOf(temp.charAt(m), 0) >= instring.lastIndexOf(temp.charAt(p), 0)) {
output.append(temp.charAt(p));
} else {
output.append(temp.charAt(m));
}
}
}
System.out.println(output);
}
我将输出为
i。谁能帮我?预期输出 =in
【问题讨论】:
-
你的最后一个索引差了一个。
-
@Tom 我没听懂你..你能更正我的代码吗?或任何其他逻辑?
-
@Mushif Ali Nawaz 你能帮帮我吗?
-
你能用
array吗? -
是的,你可以@oleg.cherednik 但不是arrayList!