Scoxty 2021-10-13 21:23 采纳率: 100%
浏览 51
已结题

NOI / 1.7编程基础之字符串:找第一个只出现一次的字符

为什么会出现runtime error?如何修改?在Dev C++上能编译运行,到NOI上就不行了。

img

img

  • 写回答

1条回答 默认 最新

  • 关注

    你一层for循环就可以,用一个数组专门存每个字符出现次数,不用双层循环

    #include "iostream"
    #include "iomanip"
    using namespace std;
    int main()
    {
        string str;
        getline(cin,str);
        bool flag=false;
        int num[26]={0};
        for(int i=0;i<str.length();i++)
        {
            //a-0x61 97(10进制)
            num[str.at(i)-97]++;
        }
        for(int i=0;i<str.length();i++)
        {
            if(num[str.at(i)-97]==1)
            {
                cout<<str.at(i);
                flag=true;
                break;
            }
        }
        if(!flag)
            cout<<"no"<<endl;
        return 0;
    }
    
    

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 10月21日
  • 已采纳回答 10月13日
  • 创建了问题 10月13日