【PAT甲级 约会】1061 Dating (20 分) C++ 全部AC
生活随笔
收集整理的這篇文章主要介紹了
【PAT甲级 约会】1061 Dating (20 分) C++ 全部AC
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目
這個(gè)題要注意的細(xì)節(jié)很多。因?yàn)橐粋€(gè)星期有七天,一天有24小時(shí),所以要注意字母范圍這個(gè)隱藏條件,不符合條件的字母要跳過。
還要注意:第二次查找,要接著第一次找到的位置開始找。這個(gè)有點(diǎn)坑,題目里沒說明白,只說是第二個(gè)相同的字符,我一開始是從頭找的,所以這個(gè)點(diǎn)卡了很久。
所以,做題還是要先讀懂題再開始敲,不然的話,用錯(cuò)誤的理解敲出來再一點(diǎn)一點(diǎn)改太浪費(fèi)時(shí)間了。
自己用的測(cè)試用例,用于測(cè)試第二次查找的開始要接著第一次的結(jié)束位置繼續(xù)找這個(gè)坑
題解 C++
#include<iostream> #include<string> using namespace std; //這個(gè)題要注意的細(xì)節(jié)很多。因?yàn)橐粋€(gè)星期有七天,一天有24小時(shí),所以要注意字母范圍這個(gè)隱藏條件,不符合條件的字母要跳過。 int main() {string str1, str2, str3, str4;cin >> str1 >> str2 >> str3 >> str4;int weekday = -1;int hour = -1;//在前兩個(gè)字符串中,找第一個(gè)相同的大寫字母(由于一周七天的約束,應(yīng)該在A-G范圍內(nèi))int temp = -1;int len = str1.length() < str2.length() ? str1.length() : str2.length();for (int i = 0; i < len; i++) {if (str1[i] == str2[i] && str1[i] >= 'A'&&str1[i] <= 'G') {weekday = str1[i] - 'A';temp = i;break;}}//接著上次找到的位置繼續(xù)找,找到第一個(gè)相同的數(shù)字(0-9)或大寫字母(A-N)for (int i = temp + 1; i < len; i++) {if (str1[i] == str2[i]) {if (str1[i] >= '0'&&str1[i] <= '9') {//是數(shù)字hour = str1[i] - '0';break;}else if (str1[i] >= 'A'&&str1[i] <= 'N') {//是大寫字母hour = 10 + (str1[i] - 'A');break;}}}//后兩個(gè)字符串中,找到第一個(gè)相同字母的位置int minute = -1;len = str3.length() < str4.length() ? str3.length() : str4.length();for (int i = 0; i < len; i++) {if (str3[i] == str4[i]) {if ((str3[i] >= 'A'&&str3[i] <= 'Z') || (str3[i] >= 'a'&&str3[i] <= 'z')) {minute = i;break;}}}string weekdays[] = { "MON","TUE","WED","THU","FRI","SAT","SUN" };cout << weekdays[weekday] << " ";printf("%02d:%02d", hour, minute);system("pause"); }總結(jié)
以上是生活随笔為你收集整理的【PAT甲级 约会】1061 Dating (20 分) C++ 全部AC的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【PAT甲级 进位相加】1058 A+B
- 下一篇: 【PAT甲级 大整数BigInteger