Re: [問題] 迴文
※ 引述《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
08/21 13:29, 2F
推
08/22 13:20, , 3F
08/22 13:20, 3F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章