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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

OpenJudge NOI 1.7 17:字符串判等

發布時間:2025/3/17 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenJudge NOI 1.7 17:字符串判等 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

【題目鏈接】

OpenJudge NOI 1.7 17:字符串判等

【題目考點】

1. 字符串

2. 大小寫轉換

'a’的ASCII碼是97,'A’的ASCII碼是65,同一字母的大小寫字母的ASCII碼差值為32。小寫轉大寫:減32;大寫轉小寫:加32。

【題解代碼】

解法1:將字符串中的字母都轉為小寫字母,去掉所有空格,而后比較

#include <bits/stdc++.h> using namespace std; void proc(char s[])//將s中所有字母都轉為小寫字母,并去掉所有空格 {int len = strlen(s), j = 0;//j填充位置 for(int i = 0; i < len; ++i){if(s[i] >= 'a' && s[i] <= 'z')s[j++] = s[i];else if(s[i] >= 'A' && s[i] <= 'Z')s[j++] = s[i] + 32;}s[j] = '\0'; } int main() {char s1[105], s2[105];cin.getline(s1, 105);cin.getline(s2, 105);proc(s1);proc(s2);if(strcmp(s1, s2) == 0)cout << "YES";elsecout << "NO";return 0; }

解法2:雙指針

i為s1的下標,j為s2的下標。i,j不斷向后移動,如果遇到空格則跳過。比較s1[i]和s2[j],如果相同,看后一個字符。如果不同,則兩個字符串不同。

#include <bits/stdc++.h> using namespace std; int main() {char s1[105], s2[105];cin.getline(s1, 105);cin.getline(s2, 105);int i = 0, j = 0;while(true){if(s1[i] == ' ')i++;else if(s2[j] == ' ')j++;else if(s1[i] == '\0' || s2[j] == '\0')break;else if(tolower(s1[i]) == tolower(s2[j]))//將s1[i]與s2[j]都轉為小寫后,看是否相同 i++, j++;elsebreak;}if(s1[i]=='\0' && s2[j]=='\0')//如果i,j都遍歷到最后 cout << "YES";elsecout << "NO";return 0; } 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的OpenJudge NOI 1.7 17:字符串判等的全部內容,希望文章能夠幫你解決所遇到的問題。

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