写了这个函数,它接受两个字符串并输出常用字符数。无法让它与在线编译器一起工作......对我来说似乎很合适。
int commonCharacterCount(std::string s1, std::string s2) {
int stringCount1[26]{ 0 };
int stringCount2[26]{ 0 };
int charGet;
int total{ 0 };
for (auto i = 0; i < s1.length(); i++)
{
charGet = s1[i];
stringCount1[charGet - 97] = stringCount1[charGet - 97]++;
}
for (auto i = 0; i < s2.length(); i++)
{
charGet = s2[i];
stringCount2[charGet - 97] = stringCount2[charGet - 97]++;
}
for (auto i = 0; i < 26; i++)
{
total = total + min(stringCount1[i], stringCount2[i]);
}
return total;
}
答案 0 :(得分:3)
x++
返回x
的初始值
所以
stringCount1[charGet - 97] = stringCount1[charGet - 97]++;
返回或者可能未定义,具体取决于您的编译器版本,在我的情况下,它恰好返回初始值stringCount1[charGet - 97]
的初始值,表示0。
只需使用stringCount1[charGet - 97]++
或stringCount1[charGet - 97] = stringCount1[charGet - 97] + 1
。