【发布时间】:2021-10-04 02:32:52
【问题描述】:
我正在制作一个程序,它要求用户输入一个参数 (argv[1]),其中参数是重新排列的字母表中的每个字母,但用户喜欢它。有效输入的示例是“YTNSHKVEFXRBAUQZCLWDMIPGJO”和“JTREKYAVOGDXPSNCUIZLFBMWHQ”。无效输入的示例将是“VCHPRZGJVTLSKFBDQWAXEUYMOI”和“ABCDEFGHIJKLMNOPQRSTUYYYYY”,因为在各自的示例中存在重复的“V”和“Y”。
到目前为止我所知道的是,您可以像下面这样遍历整个参数
for (int j = 0, n = strlen(argv[1]); j < n; j++)
{
//Place something in here...
}
但是,我不太清楚这是否是查找重复项时的正确方法?此外,我希望答案尽可能简单,正确知道时间和 cpu 使用率不是优先事项,因此“最佳”算法不一定是我要寻找的算法。
【问题讨论】:
-
您最终需要检查输入的每个字符,因此循环遍历它们是一个好的开始。
-
如果有人递给你一张写有上述字符序列的纸,而你只有另一张纸和一支铅笔,你会怎么做?回答这个问题,您将拥有一种(几种)可能的算法。
-
我认为最简单的选择是使用 switch(arg[i]) { case 'A': int x++;休息;依此类推。
-
n = strlen(argv[1] 不起作用。n=0.
标签: arrays c duplicates