剑指offer-第一个只出现一次的字符

2016/05/24 C和C++基础

题目描述

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

#include <iostream>
#include <map>
#include <algorithm>
using namespace std;

bool FindChar(char* pInputString, char* pChar){
	map<char,int> charMap;
	int i=0;
	while(pInputString[i]!='\0'){
		charMap[pInputString[i]]++;
		i++;
	}
	map<char,int>::iterator it;
	for(int j=0;j<i;j++){
		it=charMap.find(pInputString[j]);
		if(it->second==1){
			*pChar=it->first;
			return 1;
		}	
	}
	*pChar='.';
	return 0;
}

int main(){
	char pInputString[10000];
	while(cin>>pInputString){
		char c;
		char *pChar=&c;
		FindChar(pInputString,pChar);
		cout<<*pChar<<endl;
	}
}

Search

    Post Directory