天天看點

[九度OnlineJudge][劍指Offer]題目1283:第一個隻出現一次的字元

題目描述:
在一個字元串(1<=字元串長度<=10000,全部由大寫字母組成)中找到第一個隻出現一次的字元。
輸入:

輸入有多組資料

每一組輸入一個字元串。

輸出:
輸出第一個隻出現一次的字元下标,沒有隻出現一次的字元則輸出-1。
樣例輸入:
ABACCDEFF
AA      
樣例輸出:
1
-1      
#include <iostream>
#include <string>
#include <cstdio>
#include <cstring>
 
using namespace std;
 
int main()
{
    //freopen("input.txt","r",stdin);  //隻加這一句輸入将被重定向到檔案input.txt
    string input;
    int count[26];
    memset(count,0,26);
 
    while(cin>>input)
    {
//      count[26]={0};這是什麼鬼?隻有定義事可以這樣順便初始化
        memset(count,0,26);//記得清除上次運算結果
        for(int i=0;i<input.length();i++)
        {
            count[input.at(i)-'A']++;
        }
        bool no_exit=true;
        for(int i=0;i<input.length();i++)
        {
            if(count[input.at(i)-'A']==1)
            {
                no_exit=false;
                cout<<i<<endl;
                break;
            }
        }
        if(no_exit)cout<<-1<<endl;
    }
    return 0;
}
/**************************************************************
    Problem: 1283
    User: fuestck
    Language: C++
    Result: Accepted
    Time:80 ms
    Memory:1520 kb
****************************************************************/