菜鸟到底是菜鸟,今儿牛客网刷题的时候,刷新三观了,自己敲了辣么多代码实现不了的,人家一丢丢代码,即实现了,还思路清晰,代码大神思路简直了。。。
只能说,天苍苍野茫茫,前路还很长。
对给定的一个字符串,找出有重复的字符,并给出其位置,
如:abcaaAB12ab12 输出:a,1;a,4;a,5;a,10,b,2;b,11,1,8;1,12, 2,9;2,13。
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
while (cin >> s)
{
for (int i = 0; i<s.size() - 1; ++i)
{
bool first = false;//判断是否是重复的第一个字母
if (s[i] == '*') //标记
continue;
for (int j = i + 1; j<s.size(); ++j)
{
if (s[i] == s[j])
{
if (!first)
{
cout << s[i] << ":" << i;
first = true;
}
cout << "," << s[j] << ":" << j;
s[j] = '*';
}
}
if (first)
{
cout << endl;
}
}
}
}