は、だから私は疑問与えられた与えられた文字列内の文字を繰り返す:検索すべての非
が指定した文字列に非反復のすべての文字を検索します。
一部の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のすべての要素を見つけるために2番目のループを変更するだけではわかりませんか? – Beta
あなたは、どの文字が一度出現するかを決定し(そして代わりに文字列を返す)か、またはそれらを数えたいが、出現する文字が最も少ない時間を計算している。 – molbdnilo
これは宿題のような感じです。 –