首个重复字符(去哪儿)

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

题目描述

对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。

给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。

测试样例:

“qywyer23tdd”,11

返回:y

程序代码

#include <iostream>
#include <vector>
#include <string>

using namespace std;

bool repeat(vector<char> &str,char c){
	for(int i=0;i<str.size();i++){
		if(str[i]==c)
			return true;
	}
	return false;
}

char findFirstRepeat(string A,int n){
	vector<char> str;
	for(int i=0;i<n;i++){
		if(!repeat(str,A[i]))
			str.push_back(A[i]);
		else
			return A[i];
	}
	return 0;
}


int main(){
	string A="qywyer23tdd";
	int n=11;
	cout<<findFirstRepeat(A,n)<<endl;
	system("pause");
}

Search

    Post Directory