【发布时间】:2022-01-24 00:12:18
【问题描述】:
我希望我的程序计算发生的字符交换次数,以便按字母顺序排列它们。有什么简单的方法可以做到这一点吗?这是我的代码。
import java.util.Arrays;
import java.util.Scanner;
class ArrangingBooks{
public static void main(String[] args) {
Scanner scan= new Scanner(System.in);
String str = scan.nextLine();
char c[] = str.toCharArray();
Arrays.sort(c);
System.out.println(new String(c));
scan.close();
}
}
样本输入 = LLSLM
样本输入的输出 = 2
【问题讨论】:
-
这取决于你的排序算法。您是在交换彼此相邻的字符还是交换字符串中的任意两个字符?
-
按字母顺序交换它们。 A-Z
-
我认为练习的重点是编写自己的排序例程并自己计算交换次数。
-
您的技术是否提供字母顺序?也许试试“aAbC”?
-
如果您可以按字母顺序对数组进行排序,那么您就有 2 个具有相同元素的数组。您可以计算将 1 个数组变为另一个数组所需的交换次数。它不一定是使用的排序算法的交换。