B题 WA求助

大佬们,提个问题,我的写法是遍历输入的整个字符串,如果某个位置上的字母与标准的字符串不同的话,就找到这个字符该在的位置,交换字母,直到遍历完整个字符串,结果是WA,请问是哪里出了问题啊

代码附上

#include<iostream>

using namespace std;
string str1 = "cocacola";
int num[26][3];
int main()
{
    string str2;
    cin >> str2;
    
    num['c' - 'a'][0] = 1;
    num['o' - 'a'][0] = 2;
    num['c' - 'a'][1] = 3;
    num['a' - 'a'][0] = 4;
    num['c' - 'a'][2] = 5;
    num['o' - 'a'][1] = 6;
    num['l' - 'a'][0] = 7;
    num['a' - 'a'][1] = 8;
    
    int times = 0;
    for(int i = 0;i < str2.length();i++)
    {
        if(str2[i] != str1[i])
        {
            for(int j = 0;j < 3;j++)
            {
                if(str2[num[str2[i] - 'a'][j] - 1] != str2[i] && num[str2[i] - 'a'][j] != 0)
                {
                    swap(str2[i], str2[num[str2[i] - 'a'][j] - 1]);
                    times++;
                    break;
                }
            }
        }
    }
    
    cout << times;
}
全部评论
考虑下多个字符  'C&(3778)#39; 不同位置你应该换哪一个??
点赞 回复 分享
发布于 2021-09-25 20:11

相关推荐

不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
11-18 15:57
门头沟学院 Java
最终归宿是测开:这个重邮的大佬在重邮很有名的,他就喜欢打92的脸,越有人质疑他,他越觉得爽😂
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务