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

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

img

img

你一层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