Re: [問題] 迴文

看板C_and_CPP (C/C++)作者 (DP)時間13年前 (2011/08/21 11:53), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串3/5 (看更多)
※ 引述《handsome616 (豆花伯爵)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : code::block : 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) : 問題(Question): : 爲什麼可以直接相加? : 程式碼(Code):(請善用置底文網頁, 記得排版) : #include <iostream> : #include <string> : using namespace std; : int main() { : string s1 ,s2; : while(cin >> s1 ) { : for(int i = 1 ; i <= s1.length() ; i++) { : s2 += s1[s1.length()-i] ; : } : if(s1==s2) : cout << "yes" << endl ; : else : cout << "no" << endl ; : s2 = ""; : } : return 0; : } : 補充說明(Supplement): : 小弟在高中生解題系統上練習,本來是用getline的想法去寫 : 可是在google後找到這段程式碼,請教各位先進 : 爲什麼可以直接s2+=s1[s1.lenght()-1],好抽象 : 懇請各位解惑 先註解一下, 原題目:http://zerojudge.tw/ShowProblem?problemid=a022 基本上直接存成字串然後比對就好, 另外使用strlen或是string裡面的.length(), 如果要拿來跑迴圈判斷式, 記得先存到一個變數裡面。 #include<stdio.h> #include<string.h> main(){ int i,j; char s[1050]; while(scanf("%s",s)!=EOF){ for(i=0,j=strlen(s)-1 ; i<j && s[i]==s[j]; ++i,--j); if(i<j) puts("no"); else puts("yes"); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.49.243

08/21 11:54, , 1F
雖然老實說裡面用了一點個人的壞習慣...
08/21 11:54, 1F

08/21 13:29, , 2F
是DP耶>///<
08/21 13:29, 2F

08/22 13:20, , 3F
感謝先進指教
08/22 13:20, 3F
文章代碼(AID): #1EK854Gg (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
6
15
以下文章回應了本文 (最舊先):
2
14
1
11
完整討論串 (本文為第 3 之 5 篇):
4
4
6
15
2
3
2
14
1
11
文章代碼(AID): #1EK854Gg (C_and_CPP)