如何在以伪代码编写的字符串中查找常用字符。谢谢

时间:2014-12-01 23:37:15

标签: pseudocode

最常见的角色 设计一个程序,提示用户输入字符串,并显示字符串中最常出现的字符。

这是一个家庭作业的问题,但我的老师没有帮助,它让我发疯,我无法解决这个问题。

提前谢谢你。

这是我到目前为止!

Declare String str
Declare Integer maxChar
Declare Integer index

Set maxChar = 0

Display “Enter anything you want.”
Input str

For index = 0 To length(str) – 1
    If str[index] =

现在我卡住了。我不认为它是正确的,我不知道该去哪里!

2 个答案:

答案 0 :(得分:0)

在我看来,你想要的方式是: “仔细检查字符串中的每个字符,记住我们最常见过的字符。”

然而,这是行不通的。如果我们只记住单个字符的计数,例如“我们大多数时候看到的字符是5次出现的'a',我们就不知道第二位的字符是否可能不会向前跳。” / p>

所以,你需要做的是:

  1. 浏览字符串的每个字符。
  2. 对于每个字符,增加该字符的出现次数。是的,您必须为您遇到的每个角色保存此计数。像stringint这样的简单变量在这里是不够的。
  3. 当你完成后,你会留下一堆数据看起来像“a”= 5,“b”= 2,“e”= 7,......你必须去找那个并找到最高的数字(我确定你可以找到一个在序列中找到最高数字的例子),然后返回与之对应的字母。
  4. 我知道,这不是一个完整的答案,但这就是我要说的。

    如果您遇到困难,我建议您拿一支笔和一张纸并尝试手动计算。试着想一想 - 如果没有电脑,你会怎么做?如果你的回答是“看看”,那么如果文字是10页呢?我知道这可能会令人困惑,但所有这一切的关键在于让你习惯于不同的思维方式。如果你想出这个,下次会更容易,因为基本原则总是一样的。

答案 1 :(得分:0)

这是我创建的用于计算字符串中所有出现次数的代码。

String abc = "aabcabccc";
char[] x = abc.toCharArray();
String _array = "";
for(int i = 0; i < x.length; i++) //copy distinct data to a new string
{
    if(_array.indexOf(x[i]) == -1)
    _array = _array+x[i];
}
char[] y = _array.toCharArray();
int[] count1 = new int[_array.length()];
for(int j = 0; j<x.length;j++) //count occurences
{
    count1[new String(String.valueOf(y)).indexOf(x[j])]++;
}
for(int i = 0; i<y.length;i++) //display
{
    System.out.println(y[i] + " = " + count1[i]);
}