九度 题目1283:第一个只出现一次的字符

来源:互联网 发布:又当黑客又当程序员 编辑:程序博客网 时间:2024/05/16 00:55

题目来源:http://ac.jobdu.com/problem.php?pid=1283

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:991

解决:568

题目描述:

在一个字符串(1<=字符串长度<=10000,全部由大写字母组成)中找到第一个只出现一次的字符。

输入:

输入有多组数据
每一组输入一个字符串。

输出:

输出第一个只出现一次的字符下标,没有只出现一次的字符则输出-1。

样例输入:
ABACCDEFFAA
样例输出:
1-1
做个hash映射就可以了。

#include <iostream>#include <cstdio>#include <cstring>#include <map>using namespace std;const int MAXN = 10010;int main(){    int arr[30];    char str[MAXN];    int Len, tmp, i;    while(~scanf("%s", str))    {        getchar();        memset(arr, 0, sizeof(arr));        Len = strlen(str);        for(i = 0; i < Len; ++i)        {            tmp = str[i] - 'A';            arr[tmp]++;        }        i = 0;        for(i = 0; i < Len; ++i)        {            tmp = str[i] - 'A';            if(arr[tmp] == 1)            {                printf("%d\n", i);                break;            }        }        if(i == Len)            printf("-1\n");        str[0] = '\0';    }    return 0;}


0 0