記應聘:華爲 杭州 OD

記在前面

看網上的評論,說這個東東是外包的。我的態度是先試試吧。

一面,在線機試

。。今天卡在一個低級語法錯誤上,導致最後過了40%,真是智障。。
題目是:找出一個字符串中出現次數最多的字符,並輸出該字符以及它出現的次數。
具體分爲大小寫敏感和不敏感兩種情況。大小寫敏感時,就是輸出出現次數最多的字符,及其出現的次數。大小寫不敏感時,要求輸出的字符按照第一次出現的大寫還是小寫輸出。以及它的出現次數。
以下是代碼:

#include<iostream>
#include<string>
using namespace std;

int main() {
	string in;  //輸入的字符串
	string flag1;  //判斷標誌  true爲大小寫敏感,false爲大小寫不敏感
	cin >> in;
	int j = in.length();   //表示字符串的長度
	int b[52] = {0};  //記錄,大小寫敏感時。
	struct a {
		int num;
		int flag;  //記錄首次出現是大寫還是小寫  0 大寫 1 小寫
	};
	//定義一個結構體數組  //記錄每個字母出現的次數。不敏感時用這個。
	a a1[26];  //直接這樣也可以定義結構體數組
	for (int i = 0; i < 26; i++) {
		a1[i].num = 0;
		a1[i].flag = 0;   //初始化
	}
	cin >> flag1;
	if (flag1 == "false") //大小寫不敏感時,大小寫看成一個字母,
	{   
		for (int i = 0; i < j; i++) {
			if ((-1 < (int)(in[i]) - 65 )&&((int)(in[i]) - 65 < 26) && (a1[(int)(in[i])- 65].num == 0)) {
				a1[(int)(in[i]) - 65].num++;
				a1[(int)(in[i]) - 65].flag = 0;
			}  
			else if ((-1 < (int)(in[i]) - 97)&&((int)(in[i]) - 97 < 26) && (a1[(int)(in[i]) - 97].num == 0)) {
				a1[(int)(in[i]) - 97].num++;
				a1[(int)(in[i]) - 97].flag = 1;
			}
			else {
				if ((-1 < (int)(in[i]) - 65 )&&((int)(in[i]) - 65 < 26)) { a1[(int)(in[i]) - 65].num++; }
				else { a1[(int)(in[i]) - 97].num++; }
			}
		}
		int max = 0; int i3 = 0;
		for (int i = 0; i < 26; i++) { 
			if (a1[i].num > max) { max = a1[i].num; i3 = i; }
		}
		if (a1[i3].flag == 0) {
			cout << (char)(i3 + 65) << " " << max;
		}
		else{ 
			cout << (char)(i3 + 97) << " " << max;
		}
	}
	else {  //大小寫敏感
		for (int i = 0; i < j; i++) {
			if ((-1 < (int)(in[i]) - 65)&&((int)(in[i]) - 65 < 26)) { b[(int)(in[i]) - 65]++; }
			else{ b[(int)(in[i]) - 71]++; }
		}
		int max = 0; int i3 = 0;
		for (int i = 0; i < 52; i++) {
			if (b[i] > max) { max = b[i]; i3 = i; }
		}
		if (i3 < 26) { cout << (char)(i3 + 65) << " " << max; }
		else{ cout << (char)(i3 + 71) << " " << max; }
	}
	return 0;
}

今天卡在了一個智障語法問題,埃,可惜。在C++裏面,連續的小於號,大於號是不能使用的。比如1<a<2這樣的判斷是無法使用的。我今天就是卡在這裏,功虧一簣,可惜。下次繼續加油吧。
涼了,又是一週沒回信。下次繼續加油吧。有續集評論裏面聊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章