去哪兒2017校園招聘筆試題——統計字串中最先出現三次的字元
阿新 • • 發佈:2019-02-18
1. 題目
統計字元
給定一個英文字串,請寫一段程式碼找出這個字串中首先出現三次的那個英文字元。
輸入
qywyery23tdd
輸出
y
2. 分析
和所有統計英文字元一樣,依次利用Hash演算法將字串字元對映到256維字元陣列中,每一維儲存對應字元的個數。當最先達到3次的字元,並且是英文字母的字元輸出。
3. C++程式
#include<iostream>
#include<string>
using namespace std;
int main()
{
string str;
int nArrChar[256 ] = {0};//對應ASCII碼
getline(cin,str);
for(int i=0;i<str.length();i++)
{
if(++nArrChar[str[i]] == 3)//對應的碼位+1
{
if( str[i]>='a' &&str[i]<='z' || str[i]>='A' && str[i]<='Z') //確定是英文字母則輸出
{
cout<<str[i]<<endl;
break ;
}
}
}
return 0;
}
4. Java程式
package CountChar;
import java.util.Scanner;
public class CountChar {
public static void main(String[] args) {
String str;
int nArr[] = new int[256];
Scanner scan = new Scanner(System.in);
str = scan.nextLine();
for (int i=0;i<str.length();i++)
{
if(++nArr[str.charAt(i)] == 3)
{
char c =str.charAt(i);
if(c>='a'&& c<='z' || c>='A'&&c<='Z')
{
System.out.println(c);
break;
}
}
}
scan.close();
}
}
個人學習記錄,由於能力和時間有限,如果有錯誤望讀者糾正,謝謝!