我试图计算一个单词中每个字母的幻影数量,然后标记一个字母的前半部分用1表示,中间(如果单词是奇数)用2表示,下半部分用3。
例如:
偶数:ddaadd应为111333
奇数:dddaa应为12313
这是我到目前为止的代码(我设法计算单词中每个字母的频率;例如,对于ddaadd,我的输出是:442244):
#include <iostream>
#include <iomanip>
#include <map>
#include <string>
#include <cstdlib>
using namespace std;
int main( )
{
map <char, int> letters,letters2;
string cuvant;
cout<<"Scrie un cuvant"<<endl;
getline( cin, cuvant );
for ( int i=0; i< cuvant.size(); ++i )
{
letters[cuvant[i]]++;
}
for ( int i=0; i< cuvant.size(); ++i )
{
cout<<letters[cuvant[i]];
}
}
答案 0 :(得分:0)
好的,你得到了第一部分。您可能想学习调试器以查看发生了什么。我推荐visual studio 2015和tutorial here。
我的猜测是,如果两边都有字母(就像它的镜像一样),你要做的就是将字符串切成两半。我可以尝试稍后尝试,但是现在,尝试编写一个算法,检查字符串的前面和后面是否有相同的字符。继续尝试和推动。