目錄
題目:
題目描述:
題目鏈接:
思路:
思路詳解:
代碼:
代碼詳解:
題目:
題目描述:
題目鏈接:
P12344 [藍橋杯 2025 省 B/Python B 第二場] 破解信息 - 洛谷
思路:
思路詳解:
這題好像是放在了最后一題的位置上,實際上理清題意很簡單,題目的序號只是唬人的把戲
整道題目的關鍵就一句話:對于兩個字符串,從左往右逐字符比較,先出現較大字符的字符串字典序更大(最大的字符出現多次結果也就輸出多次即可)。回到程序中,我先定義一個計數數組cnt[26],索引0表示a出現的次數,索引25表示b出現的次數。先假設最大的字符maxc是a,遍歷整個字符串的每一位,如果遍歷到的字符大于maxc就進行更新,同時計數數組記錄當前字符出現次數+1,用str[i]-'a'就能得到字符對應計數器的索引。最后循環最大字符的出現次數輸出
代碼:
代碼詳解:
#include<bits/stdc++.h>
using namespace std;int cnt[26];int main()
{string str;cin>>str;char maxc='a'; //先假設最大字符是'a' for(int i=0;i<str.length();i++) //遍歷整個字符串 {cnt[str[i]-'a']++; //字符對應的計數+1 if(str[i]>maxc){maxc=str[i]; //更新最大字符 }}for(int i=0;i<cnt[maxc-'a'];i++) //根據最大字符出現次數循環輸出 {cout<<maxc;}return 0;
}