1. 程式人生 > >PAT乙級.1029. 舊鍵盤(20)

PAT乙級.1029. 舊鍵盤(20)

1029. 舊鍵盤(20)

題目

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。

輸入格式

輸入在2行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過80個字元的串,由字母A-Z(包括大、小寫)、數字0-9、以及下劃線“_”(代表空格)組成。題目保證2個字串均非空。

輸出格式

按照發現順序,在一行中輸出壞掉的鍵。其中英文字母只輸出大寫,每個壞鍵只輸出一次。題目保證至少有1個壞鍵。

輸入樣例

7_This_is_a_test
_hs_s_a_es

輸出樣例

7TI

PAT連結

思路

1.接收輸入,將出現的字元都在HashTble中標記出來
2.處理輸出的字元
1)小寫字母改成大寫輸出,並且大小寫字母都要標記
2)大寫字母不改變輸出,但相應小寫字母也要標記,防止重複輸出
3)其他情況直接標記即可

程式碼

/**
* @tag     PAT_B_1029
* @authors R11happy ([email protected])
* @date    2016-9-2 18:11-18:38
* @version 1.0
* @Language C++
* @Ranking
500/1194 * @function null */
#include <cstdio> #include <cstdlib> #include <cstring> int HashTable[128]; //直接設定ASCII碼的個數128為陣列長度 int main(int argc, char const *argv[]) { char str1[85]; char str2[85]; gets(str1); //應該輸入文字 gets(str2); //實際輸入文字 int len2 = strlen(str2); for
(int i = 0; i<len2; i++) { if(HashTable[str2[i]] == 0) HashTable[str2[i]] = 1; } int len1 = strlen(str1); for(int i = 0; i<len1; i++) { if(HashTable[str1[i]] == 0) { //小寫字母要改成大寫輸出,並且大小寫字母都要標記 if(str1[i] >= 'a' && str1[i] <= 'z') { printf("%c",str1[i] - 32 ); HashTable[str1[i]]++; HashTable[str1[i]-32]++; } // 大寫字母不改變輸出,但相應小寫字母也要標記,防止重複輸出 else if(str1[i] >= 'A' && str1[i] <= 'Z') { printf("%c",str1[i] ); HashTable[str1[i]]++; HashTable[str1[i]+32]++; } //其他情況直接標記即可 else { printf("%c",str1[i] ); HashTable[str1[i]]++; } } } return 0; }

收穫

HashTable陣列的大小隻要能把題目給出的字元包括即可,一般可以直接設定ASCII碼的個數128為其陣列長度

相關推薦

PAT乙級.1029. 鍵盤(20)

1029. 舊鍵盤(20) 題目 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式 輸入在2行中分別給出應該輸入的文字、以及實際被

PAT乙級 1029 鍵盤

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在 2 行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過 80 個字元的串,由字母 A-Z(包括大、小寫)

PAT乙級1029鍵盤

題目描述: 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在 2 行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過 80 個字元的串,由字母 A-Z(包括大

PAT 乙級 1029 鍵盤

1029 舊鍵盤 (20 point(s)) 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在 2 行中分別給出應該輸入的文字、以及實際被輸入的文字。

[PAT-乙級]1029.鍵盤

舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在2行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超過80個字元的串,由字母A-Z(包括大、小寫)、數字0-9、以及下劃線“_

1029. 鍵盤(20)-PAT乙級真題

1029. 舊鍵盤(20)舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。輸入格式:輸入在2行中分別給出應該

PAT1029 鍵盤20 分)

1029 舊鍵盤 (20 分) 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在 2 行中分別給出應該輸入的文字、以及實際被輸入的文字。每段文字是不超

PAT乙級1033. 鍵盤打字(20)

這題目我已開始用10+26+5鍵盤的方式寫,但是第2個和第4個測試點一直過不掉 很煩,考慮到了第一行有可能為空的情況,但依然不行 自己修改了他的程式碼,一開始最後的一個測試點一直A不過,後來才突然發現A~Z的判斷很特殊的問題,不僅要考慮上檔鍵 貼出修改後的原始碼

PAT】B1029 鍵盤(20)(20 分)

如果 names for ++ code ace strlen true 輸入 #include<cstdio> #include<string.h> #include<ctype.h> char str1[81],str2[81]; u

PAT乙級1033鍵盤打字

題目描述: 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣? 輸入格式: 輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對應英文字母的壞鍵以大寫給出;每段文字

PAT 乙級 1033 鍵盤打字

1033 舊鍵盤打字 (20 point(s)) 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣? 輸入格式: 輸入在 2 行中分別給出壞掉的那些鍵、以及應該輸入的文字。其中對

PAT乙級1029 鍵盤(C語言實現)

總結: 1、思路就是對於應該輸入的文字的每一個字元在實際輸入的文字中遍歷,看是否能鍵入。如果在實際輸入的文字中沒發現,將對該字元進行儲存,但需要對將要儲存的字元陣列遍歷,看該數組裡是否已存在該字元。 2、因為字母的大寫和小寫在此題目中相當於同一個字元,所以判斷是否

PAT——1029. 鍵盤

下劃線 color http 大寫 iss main 一段 for 格式 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在2行中分別給出應該輸入的文字、以及實際

PAT 1029. 鍵盤

scan urn int 輸出格式 const markdown algorithm logs 一段 PAT 1029. 舊鍵盤 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。

1029 鍵盤20 分)

code per 英文字母 () iostream 鍵盤 中英文 一個 輸入格式 舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字符就不會出現。現在給出應該輸入的一段文字、以及實際被輸入的文字,請你列出肯定壞掉的那些鍵。 輸入格式: 輸入在 2 行中分別給出應該輸入

PAT Basic 1033. 鍵盤打字(20)——c實現

題目     舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該輸入的一段文字、以及壞掉的那些鍵,打出的結果文字會是怎樣?     輸入格式:    

PAT Basic 1033. 鍵盤打字(20)(C語言實現)

, CSDN內容暫時不更新(將來有計劃更新), 請前往連結檢視最新內容. 歡迎star 我的repo題目舊鍵盤上壞了幾個鍵,於是在敲一段文字的時候,對應的字元就不會出現。現在給出應該

C++·PAT乙級1012.數字分類 (20/20)

數據 ostream using += scan 順序 brush 思路 最大數 /* 1012. 數字分類 (20) 給定一系列正整數,請按要求對數字進行分類,並輸出以下5個數字: A1 = 能被5整除的數字中所有偶數的和; A2 = 將被5除後余1的數字按給出順序

註釋“PAT 乙級 1027. 列印沙漏(20) Java版”——讓你輕鬆讀懂

尊重原作者,原文資訊如下。 原文作者:柳婼 來源:CSDN 原文:https://blog.csdn.net/liuchuo/article/details/56676279 版權宣告:本文為博主原創文章,轉載請附上博文連結! 我只是對其程式碼按自己的理解做了註釋,

PAT乙級 1058 選擇題 (20 分)

批改多選題是比較麻煩的事情,本題就請你寫個程式幫助老師批改多選題,並且指出哪道題錯的人最多。 輸入格式: 輸入在第一行給出兩個正整數 N(≤ 1000)和 M(≤ 100),分別是學生人數和多選題的個數。隨後 M 行,每行順次給出一道題的滿分值(不超過 5 的正整數)、選項個數(不少