-1
所以我給了這個問題:查找給定字符串中的所有非重複字符
查找給定字符串中的所有非重複字符;
在做了一些Google搜索之後,很明顯我發現找到第一個不重複的字符很常見。我發現了很多如何做的例子,但是我沒有找到任何關於如何找到所有非重複字符而不是第一個的例子。
我的示例代碼到目前爲止是:
#include <iostream>
#include <unordered_map>
using namespace std;
char findAllNonRepeating(const string& s) {
unordered_map<char, int> m;
for (unsigned i = 0; i < s.length(); ++i) {
char c = tolower(s[i]);
if (m.find(c) == m.end())
m[c] = 1;
else
++m[c];
}
auto best = m.begin();
for (auto it = m.begin(); it != m.end(); ++it)
if (it->second <= best->second)
best = it;
return (best->first);
}
int main()
{
cout << findAllNonRepeating("dontknowwhattochangetofindallnonrepeatingcharacters") << endl;
}
我不知道我需要更改或添加有此找到所有的非重複的字符。
k,f,p,s應該是該字符串中的非重複字符。
任何提示或想法,非常感謝!
只需修改第二個循環來查找值爲1的所有元素,是不是很明顯? – Beta
您希望確定哪些字符會出現一次(並返回一個字符串)或對它們進行計數,但計算出現的字符出現次數最少。 – molbdnilo
這感覺就像一個家庭作業問題。 –