题解 | #出现一次的数字#

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

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

//c错误版本

#include <iostream>

using namespace std;

int main ()
{

    string st;
    while(cin>>st)
    {
        int ar[26]={0};
        for (int i=0;i<st.size();i++)
        {
            int index=st[i]-'a';
            ar[index]++;
        }
        int min_index=20;
      for (int i=0;i<26;i++)
      {
         if(ar[i]>0) 
           min_index=min(min_index,ar[i]);//找出出现的最小的数
      }

        for (int i=0;i<st.size();i++)
        {
            if(ar[st[i] - 'a']>min_index)//输出大于此次数的字母
                printf("%c",st[i]);
        }
        cout<<endl;

    }

}

正确版本。
花了一个小时
半天才de出来

#include <iostream>

using namespace std;

int main ()
{

    string st;
    while(cin>>st)
    {
        int ar[26]={0};
        for (int i=0;i<st.size();i++)
        {
            int index=st[i]-'a';
            ar[index]++;
        }
        int min_index=20;
      for (int i=0;i<26;i++)
      {
         if(ar[i]>0) 
           min_index=min(min_index,ar[i]);//找出出现的最小的数
      }

        for (int i=0;i<st.size();i++)
        {
            if(ar[st[i] - 'a']>min_index)//输出大于此次数的字母
                printf("%c",st[i]);
        }
        cout<<endl;

    }

}
全部评论

相关推荐

点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务