找出字符串中第一个只出现一次的字符

找出字符串中第一个只出现一次的字符      

描述:

找出字符串中第一个只出现一次的字符

详细描述:

接口说明

原型:

bool FindChar(char* pInputString, char* pChar);

输入参数:

char* pInputString:字符串

输出参数(指针指向的内存区域保证有效):

char* pChar:第一个只出现一次的字符

如果无此字符 请输出'.'

 

 

知识点: 字符串,循环 

题目来源: 内部整理 

练习阶段: 初级 

运行时间限制: 10Sec

内存限制: 128MByte

输入:  

输入一串字符

 

输出:  

输出一个字符

 

样例输入:

asdfasdfo

                   

样例输出:

o

#include<iostream>
using namespace std;

/*
输入参数:
char* pInputString:字符串
输出参数(指针指向的内存区域保证有效):
char* pChar:第一个只出现一次的字符
如果无此字符 请输出'.'
*/
char FindChar(char* pInputString, char* pChar);

int main()
{
    char str[500];
    cin>>str;
//  cout<<str;
    char *pChar;
    cout<<FindChar(str,pChar);
    return 0;
}


char FindChar(char* pInputString, char* pChar)
{
    char * temp= pInputString;
    char * temp2= pInputString;

    int flag[256];
    for(int i= 0 ; i <256; i++)
        flag[i]=0;

    while(*temp!='\0')
    {
        flag[*temp]++;
        temp++;
    }
//    for(int i=0; i < 255; i++)
//    {
//        if(flag[i]!=0)
//        {
//            cout<<i<<" is "<<flag[i]<<endl;
//        }
//    }
    while(*temp2!='\0')
    {
        if(flag[*temp2]==1)
        {
            //cout<<endl<<"found it"<<*temp2<<endl;
            return *temp2;
        }
        else
        {
            temp2++;
        }

    }
    return '.';
}

              


运行时间: 46MS

运行内存: 1248.0KB

答题结果: 正确



SourceMonitor结果:

方法名称 圈复杂度 语句数 最大嵌套深度 调用次数

FindChar() 6 15 3 0

main() 1 5 1 0


你可能感兴趣的:(找出字符串中第一个只出现一次的字符)