cpp 出现iiiizzzz原因/多出zz

删除字符串中出现次数最少的字符

http://www.nowcoder.com/questionTerminal/05182d328eb848dda7fdd5e029a56da9

#include<iostream>
#include<string>
#include<map>
using namespace std;
int main()
{
    int min = 1;
    int flag[20];
    map<char, int> mymap;
    string str;
    while (cin >> str)
    {
        mymap.clear();     //!!!!注意清空否则下一个会出错
        for (int i = 0; i < str.size(); i++)
        {

            if (mymap.count(str[i])) //存在key
            {
                mymap[str[i]]++;
            }
            else
            {
                mymap[str[i]] = 1;
            }
            if (min >= mymap[str[i]])
            {
                min = mymap[str[i]];
            }
        }
        for (int i = 0; i < str.size(); i++) //删除min代表的
        {
            if (mymap[str[i]] != min)
            {
                cout << str[i];
            }
        }
        cout<<endl;         //无此则出现iiiizzzz,多出其中zzzz,用例中并无zzzz
    }
    return 0;
}
全部评论
这里求最小值错误了,如果按这样算,min一直为1
1 回复
分享
发布于 2020-08-06 16:26
aabbddd error
点赞 回复
分享
发布于 2021-01-03 00:21
滴滴
校招火热招聘中
官网直投
确实***
点赞 回复
分享
发布于 2021-04-17 01:29
你这个是不对的,你判断最小值的时候,因为map都是从1开始加的,你每次得到的最小值都是1.。。。。
点赞 回复
分享
发布于 2021-07-25 17:36

相关推荐

头像
不愿透露姓名的神秘牛友
03-13 10:56
点赞 评论 收藏
转发
6 收藏 评论
分享
牛客网
牛客企业服务