15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告
生活随笔
收集整理的這篇文章主要介紹了
15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
勵志用少的代碼做高效的表達
題目(提交)鏈接→UVA-10391
本題實質是#include<string>頭文件的substr()字符串分割函數與#include<algorithm>頭文件的find()函數聯用。
基本思路:
單詞(字符串)存入容器后,逐位分解(substr()),查找(find())按每一位分解后其前后分別組成的字符串是否在容器中出現。 若皆出現,輸出即可。
其中find()用法參考→懶癌的福音——algorithm頭文件函數全集
代碼:
#include<bits/stdc++.h> using namespace std; int main() {set<string>ss; //查詢 string s; while(cin >> s) ss.insert(s);for(auto p : ss) { //p是每一個字符串 bool isCpdword = false;for(int i = 0; i < p.size()-1 && !isCpdword; i++) //遍歷左右組合 if(ss.find(p.substr(0, i+1)) != ss.end() && ss.find(p.substr(i+1)) != ss.end())isCpdword = true; if(isCpdword) cout << p << endl; //?后的語句湊數用,否則編譯錯誤。 }return 0; }收獲:
1、substr() 分割函數
2、find()函數妙用
撥云見日,未來可期。
總結
以上是生活随笔為你收集整理的15行代码AC——习题5-5 复合词(Compound Words, UVa 10391)——解题报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 14行代码AC——习题5-4 交换学生(
- 下一篇: 22行代码AC——习题5-6 对称轴(S