我必须解决下一个问题:给定一个可以在多行上的字符串,找到显形最多的char。大写字母将算作小写字母。如果我有多个字符具有相同数量的幻影,将显示ASCII代码最小的字符。我的程序应该在最后输出所有读取行中出现最多的字符。还有,我不能使用正则表达式。我将在下面发布我的实现。看来我错过了我正在学习的平台上的一个案子。
#include <iostream>
#include <string>
using namespace std;
int freq[122];
int main()
{
string text;
while (getline(cin, text)) {
for (int i = 0, length = text.size(); i < length; ++i) {
if (isupper(text[i])) {
text[i] = tolower(text[i]);
}
++freq[(int)text[i]];
}
int mostOccurences = freq['z'];
char mostFrequent = 'z';
for (int = 'y'; i >= 'a'; --i) {
if (freq[i] >= mostOccurences) {
mostOccurences = freq[i];
mostFrequent = (char)i;
}
}
}
cout << mostFrequent << "\n";
return 0;
}
“如果我有多个字符具有相同数量的幻影,将显示ASCII代码最小的字符。”
您的代码中的问题在这里:
for (int = 'y'; i >= 'a'; --i) {
if (freq[i] >= mostOccurences) {
mostOccurences = freq[i];
mostFrequent = (char)i;
}
}
在第二个for
循环中的最后一个条件中。基本上应该是>
而不是>=
(另外,我想您忘了将一些变量减速复制到您的问题中,例如char='z'
行或for循环声明)
我需要在一个字符串中找到许多子字符串。我下载了一个网页并把它放入一个字符串中。然后我要看看页面是否包含一些字符串(子字符串)。 现在我在boost库中使用正则表达式,因为我使用它来使用正则表达式模式([0-9]等)。 问题是:如果我只需要在一个字符串中找到一个子字符串,哪种方法是最快的?
问题是,我试图这么做,但我检查字符串长度的方法不起作用;我能做些什么来修复它?
我如何在O(N**2)个时间内完成它?
我有一个字符串“1,3,5,7,9,11,12,14”,我想检查该字符串在java中是否包含“12,3,14”。 我的代码:
我知道如何使用动态规划来解决 <罢工> 大多数 给定两个字符串的最长公共子串或最长公共子串。然而,对于字符串Y的子串X的最长子序列问题,我很难找到一个解决方案。 查找字符串X的所有子序列并按长度desc排序; 遍历排序的子序列,如果当前子序列是Y的子字符串,则返回子序列。 它可以工作,但运行时间可能会很糟糕。假设X中的所有字符都是唯一的,那么有2^m个子群,其中m是X的长度,我认为检查一个字符串是
问题内容: 这个问题与Python类似-在字典中查找最长(最多单词)键-但我需要纯字符数。 输入示例: 输出: 问题答案: 替代方法,与@jamylak的解决方案一样快,并且使用更多的pythonic: 查看比较: