日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

1029 旧键盘 (20 分)(c语言)

發布時間:2024/4/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 1029 旧键盘 (20 分)(c语言) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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

輸入格式:

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

輸出格式:

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

輸入樣例:

7_This_is_a_test _hs_s_a_es

結尾無空行

輸出樣例:

7TI

結尾無空行

#include <stdio.h> #include<string.h> #pragma warning(disable:4996) int main() {char str1[1000];char str2[1000];scanf("%s%s", str1, str2);int book1[300] = { 0 };//記錄str2中的字符int len1 = strlen(str1), len2 = strlen(str2);for (int cnt = 0; cnt < len2; cnt++) {book1[(int)(str2[cnt])] = 1;}for (int cnt = 0; cnt < len1; cnt++) {//刪除str1中str2出現的字符if (book1[(int)str1[cnt]] != 0) {str1[cnt] = 0;}}char str3[1000];int book2[300] = { 0 },i=0;//記錄str1中已經被str3加入的字符for (int cnt = 0; cnt < len1; cnt++) {if (str1[cnt] != 0 ) {//初篩掉被刪除的字符if (book2[(int)str1[cnt]] == 0) {\str3[i] = toupper(str1[cnt]);book2[tolower(str1[cnt])] = 1;book2[(int)str3[i]] = 1;i++;}}}str3[i] = 0;printf("%s", str3);return 0; }

我的大體思路就是先判斷出這道題是一道搜索題,因為題目要求找到壞鍵,所以我將可以打出的字符全部記錄到桶中,然后再對str1進行處理,刪除其中好鍵,剩余就是壞鍵,然后因為不能重復輸出,所以再設置一個桶,這個桶用來統計那些字符已經被記錄到了str3中,

我踩過的坑:1.最開始沒讀懂題目,沒注意到是要按字符出現的次序輸出而不是ascii碼排序輸出

2.這道題你記錄了了一個字符的值,要把另外一個字符也記上,然后在把字符記錄到桶的時候,記得兩次toupper和tolower,因為它輸進來的數不一定大小寫,兩次用比較保險,不會因為它輸入進來的值改變而改變;

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的1029 旧键盘 (20 分)(c语言)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。