首個重複字元(去哪兒2016校招)
阿新 • • 發佈:2019-02-03
首個重複字元
1、題目:
對於一個字串,請設計一個高效演算法,找到第一次重複出現的字元。
給定一個字串(不一定全為字母)A及它的長度n。請返回第一個重複出現的字元。保證字串中有重複字元,字串的長度小於等於500。
測試樣例:
“qywyer23tdd”,11
返回:y
2、程式碼:
#include <iostream>
#include <string>
using namespace std;
char findFirstRepeat(string A, int n)
{
int a[128] = {};
for (int i = 0 ;i < n;++i)
{
if (a[A[i]] != 0)
{
return A[i];
}
else
{
++a[A[i]];
}
}
return -1;
}
int main()
{
string str;
cin >> str;
int n;
cin >> n;
cout << findFirstRepeat(str, n) << endl;
system("pause" );
return 0;
}
3、結果:
4、總結:
ASCII碼錶128個,申請雜湊表陣列a[128],初始化為0,以ASCII碼為索引,當發現有某個值已經為1時返回。