|
|
2005/3/14 下午 09:06:09
在 palindrome 的判斷標準中是不考慮空白與標點符號,只有考慮字母,而且也忽略大小寫的差異.利用 recursive方法,我們可以寫一個 C++ 程式來判斷一個句子是否屬於 palindrome.首先必須要把字串中的所有非字母字元去除,只留下字母字元;而且所有字母字元都要統一轉換成大寫(或小寫)以方便程式判斷.判斷的方法如下:
一個字串長度為 0 或 1,則這個字串當然是 palindrome 一個字串長度為大於 1,則這個字串第一個與最後一個字元必須相同,而且這個字串去除第一個與最後一個字元後仍然是屬於 palindrome
檔案結果(無毒)這是校網 http://learning.tajen.edu.tw/idea/classroom/course/homework/teacher/10028/palindrome.exe
我不用recursive方法><" 一定要用recursive 方式解
#include<stdio.h> #include<string.h>
void reverseStack(char *s1, char *s2) { strcpy(s1,strrev(s2)); } int equalStack(char *s1,char *s2) { printf("str1 is %s ,str2 is %s=>\n",strrev(s2),s1); return strcmp(s1,s2); }
int main() { char str1[10]="\0"; char str2[10]="\0"; do{ printf("please enter a string:\n"); scanf("%s",str1); if(strcmp(str1,"000")!=0) { reverseStack(str2,str1); if(equalStack(str2,str1)==0) printf("這是迴文\n"); else printf("不是迴文\n"); } } while(strcmp(str1,"000")!=0); system("pause"); }
|
|
|
|
2005/3/17 下午 03:25:34
咳 這應該是某技院 曾老師所出的題目八 自己多想想八 題目不難!
|
|
|
|
2005/3/17 下午 05:15:13
痾~你是誰= =
怎麼知道~
|
|
|
|
2005/3/17 下午 07:23:55
>一個字串長度為 0 或 1,則這個字串當然是 palindrome >一個字串長度為大於 1,則這個字串第一個與最後一個字元必須相同,而且這個字串去除第一個與最後一個字元後仍然是屬於 palindrome
提示:
是否迴文('abccba'); 檢查頭尾; 是否迴文('bccb'); 檢查頭尾; 是否迴文('cc'); 檢查頭尾;
|
|
|
|
2005/3/17 下午 09:12:35
應該是隨修的學長 原來這邊有會遇到同校的阿 世界還真是小...
建議個別寫成函式 む輸入めむ去除めむ比較め 這樣比較好寫
有問題的話 再提出來一起討論八 好好加油囉
|
|
|
|
2005/3/19 下午 05:33:42
bool pali_str2(string _str,string::size_type ini, string::size_type endp) { return (endp > ini)?(((_str[ini]==_str[endp])?pali_str(_str,ini+1,endp-1):false)):false; } //這樣寫不知對不對哩。 int _tmain(int argc, _TCHAR* argv[]) { string str="pdap";
int i;
cout << pali_str2(str,0,str.size()-1);
cin >> i; return 0; }
|
|
|
|
2005/3/20 下午 06:37:12
>一個字串長度為 0 或 1,則這個字串當然是 palindrome >一個字串長度為大於 1,則這個字串第一個與最後一個字元必須相同,而且這個字串去除第一個與最後一個字元後仍然是屬於 palindrome
這二句話已經說明如何寫那個遞迴函式了:
bool isPalindrome(string str) { if (str.length() == 0 || str.length() == 1) return true; return (str[0] == str[str.length()-1] && isPalindrome(str.substing(1,str.length()-2))); }
|
|
|
|
|
|
|
|
| 資訊類作業 |
 |
|
| |
專家等級 |
評價 |
|
| |
一代宗師 |
10000 |
|
| |
曠世奇才 |
5000 |
|
| |
頂尖高手 |
3000 |
|
| |
卓越專家 |
1500 |
|
| |
優秀好手 |
750 |
|
|
|
|
|
|
|
|
|
|
|
|
Microsoft Internet Explorer
6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2013 程式設計俱樂部 http://www.programmer-club.com.tw/ |
|
|