PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀
生活随笔
收集整理的這篇文章主要介紹了
PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 題目分析
- 題目鏈接
題目分析
來源:acwing
分析: 讀入n個字符串s[n],以s[0]為基礎找公共后綴。枚舉后綴的長度,內層循環遍歷其他字符串,判斷是否后綴相等。
使用子串的函數substr()
使用getline(cin,s[i[)讀入含有空格的一行到字符串s[i]中。
ac代碼
#include<bits/stdc++.h> using namespace std; const int N = 110; string s[N];int main(){int n;cin >> n;getchar(); //使用getline之前要用getchar讀掉上一行的空格for(int i =0; i<n;i++) getline(cin,s[i]);string res = "nai";//公共子串的長度kfor(int k = 1;k<=s[0].size() ; k++){bool is_matched =true;string sf = s[0].substr(s[0].size()-k);//cout<< sf<<endl;//枚舉其他子串,看和s[0]是否都相同for(int i = 1; i< n; i++){if((k> s[i].size()) || sf != s[i].substr(s[i].size()-k)){is_matched = false;break;}}if(is_matched) res =sf;}cout<<res<<endl; }下面測試點4出現問題,是因為之前的代碼少寫了個等號!
第4個點:測試的是長度相等的情況
題目鏈接
PAT甲級1077 Kuchiguse
https://www.acwing.com/problem/content/1565/
總結
以上是生活随笔為你收集整理的PAT甲级1077 Kuchiguse:[C++题解]字符串、最长公共后缀的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PAT甲级1073 Scientific
- 下一篇: PAT甲级1082 Read Numbe