Re: [問題] 迴文

看板C_and_CPP (C/C++)作者 (天霜凝月)時間13年前 (2011/12/02 13:57), 編輯推噓1(1010)
留言11則, 4人參與, 最新討論串5/5 (看更多)
※ 引述《DarkPrincex (DP)》之銘言: : ※ 引述《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.123.237.62

12/02 14:37, , 1F
哪邊看不懂也指一下阿= =a
12/02 14:37, 1F

12/02 14:53, , 2F
for(i=0,j=strlen(s)-1 ; i<j && s[i]==s[j]; ++i,--j);
12/02 14:53, 2F

12/02 14:54, , 3F
這為什麼可以直接下面用 if(i<j)就判斷是不是迴文
12/02 14:54, 3F

12/02 14:56, , 4F
&& s[i]==s[j]
12/02 14:56, 4F

12/02 15:21, , 5F
就是這裡不懂...意思是字串一樣 然後長度不一樣就判定否?
12/02 15:21, 5F

12/02 15:25, , 6F
等等 那個for 後面有分號 是空迴圈?
12/02 15:25, 6F

12/02 15:44, , 7F
i j 是用來判斷從後面看過來跟從前面看過來一不一樣..
12/02 15:44, 7F

12/02 15:56, , 8F
喔喔喔 s[]這是矩陣喔 那我懂了 謝謝
12/02 15:56, 8F

12/02 15:57, , 9F
一時沒注意到...把它當成是整個字串.i,j是字串長度了....
12/02 15:57, 9F

12/02 19:45, , 10F
s是陣列...
12/02 19:45, 10F

12/02 23:30, , 11F
...陣列 我又說錯了...
12/02 23:30, 11F
文章代碼(AID): #1Es6YxHI (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
2
3
完整討論串 (本文為第 5 之 5 篇):
4
4
6
15
2
3
2
14
1
11
文章代碼(AID): #1Es6YxHI (C_and_CPP)