A. 【NOIP2018 模擬賽day1】古代密碼
阿新 • • 發佈:2019-01-06
這道題一開始讀的時候以為是深搜,仔細一想可以發現-----尼瑪這道題為什麼需要去判斷順序呢?(是不是發現自己被坑了?)
其實這道題的實質就是模擬判斷一下字母就可以了。
直接上程式碼:
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<string> using namespace std; string a,b;//原文加翻譯 int time_a[1001];//統計原文中出現的字母的次數 int time_b[1001];//統計翻譯中出現的字母的次數 int main(){ cin>>a;//cin可以直接讀入字串 cin>>b; if(a.length()!=b.length()){//如果他們的長度都不相等的話就直接判斷為錯了。 cout<<"NO"; return 0; } int len=a.length();//用一個變數來儲存長度 for(int i=0;i<len;i++)//來判斷出現的字母的次數 { time_a[a[i]-'A']++;//因為是字元,所以要減去一個A來表示 time_b[b[i]-'A']++; } sort(time_a,time_a+26);//字母有26個 sort(time_b,time_b+26); for(int i=0;i<26;i++){//如果次數不同的話就錯了 if(time_a[i]!=time_b[i]){ cout<<"NO"; return 0; } } cout<<"YES"; return 0; }