【发布时间】:2021-10-28 09:40:09
【问题描述】:
我正在寻找根据某种格式准备的以下字符串在标准输出中产生以下输出的代码。
假设和规则:
- 每个字母在给定字符串中使用 2 次,并且相同 2 个字母之间的字母将被视为 子 个字母。
- 给定的字符串总是以正确的格式给出。字符串格式 不需要检查。
示例:
输入:abccbdeeda
预期输出:
a
--b
----c
--d
----e
解释:因为两个字母“b”出现在字母“a”之间,所以字母b需要两个连字符(--b)
尝试
public static void main(String[] args) {
String input = "abccbdeeda";
System.out.println("input: " + input);
String[] strSplit = input.split("");
String g = "";
String h = "-";
ArrayList<String> list = new ArrayList<String>();
int counter = 1;
boolean secondNumber;
list.add(strSplit[0]);
int dual = 0;
for (int i = 1; i < strSplit.length; i++) {
secondNumber = list.contains(strSplit[i]);
if ((secondNumber)) {
counter--;
dual = counter * 2;
for (int f = 0; f < dual; f++) {
strSplit[i] = h.concat(strSplit[i]);
}
g = "";
dual = 0;
} else {
list.add(strSplit[i]);
counter++;
}
}
Arrays.sort(strSplit);
for (int p = 0; p < strSplit.length; p++) {
System.out.println(strSplit[p]);
}
}
输入: abccbdeeda
我的输出:
----c
----e
--b
--d
a
我无法按字母顺序对输出进行排序。如何使用其中的连字符按字母顺序排序?
【问题讨论】:
-
能详细解释一下输入输出吗?
-
您能解释一下要求如何规定输出必须按字母顺序排列吗? “fbccbdeedf”的正确输出是什么?为什么?
-
输出:--b ----c --d ----e f.输出将是这样的。 @StephenCpan>
-
1) 没有数字。只有字母。 2)这没有说明输出的顺序。要么您误解了说明……要么您没有在问题中完整准确地说明它们。
-
或者换一种说法,为什么“f --b ----c --d ----e”也不是正确答案?