討論區快速選單
知識庫快速選單
程式設計俱樂部Facebook粉絲團 討論區最近新進100則主題 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
c++ 迴文 Palindrome 問題
更改我的閱讀文章字型大小
作者 : linkhome(link)
[ 貼文 5 | 人氣 334 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
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");
}
作者 : botnel(botnel)
[ 貼文 13 | 人氣 325 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/17 下午 03:25:34

這應該是某技院
曾老師所出的題目八
自己多想想八
題目不難!
作者 : linkhome(link)
[ 貼文 5 | 人氣 334 | 評價 0 | 評價/貼文 0 | 送出評價 0 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/17 下午 05:15:13

痾~你是誰= =

怎麼知道~
作者 : hkln(HKLN.net) Perl卓越專家Oracle卓越專家資訊類作業求救優秀好手一般優秀好手程式設計甘苦談優秀好手C#卓越專家貼文超過2000則人氣指數超過100000點
[ 貼文 2135 | 人氣 122272 | 評價 14600 | 評價/貼文 6.84 | 送出評價 7 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/17 下午 07:23:55
>一個字串長度為 0 或 1,則這個字串當然是 palindrome
>一個字串長度為大於 1,則這個字串第一個與最後一個字元必須相同,而且這個字串去除第一個與最後一個字元後仍然是屬於 palindrome

提示:

是否迴文('abccba');
檢查頭尾;
是否迴文('bccb');
檢查頭尾;
是否迴文('cc');
檢查頭尾;
作者 : botnel(botnel)
[ 貼文 13 | 人氣 325 | 評價 0 | 評價/貼文 0 | 送出評價 3 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2005/3/17 下午 09:12:35
應該是隨修的學長
原來這邊有會遇到同校的阿
世界還真是小...

建議個別寫成函式
む輸入めむ去除めむ比較め
這樣比較好寫

有問題的話
再提出來一起討論八
好好加油囉
作者 : omaniken(omaniken)
[ 貼文 36 | 人氣 962 | 評價 80 | 評價/貼文 2.22 | 送出評價 4 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
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;
}
作者 : razor(舞)
[ 貼文 104 | 人氣 797 | 評價 690 | 評價/貼文 6.63 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
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)));
}
 板主 : Daniel
 > 資訊類作業 - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - 資訊類作業 - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
資訊類作業
1 Raymond 4340 
2 Ben 2880 
3 青衫 2260 
4 ozzy 1260 
5 HKLN.net 1010 
6 Daniel 780 
7 joe 740 
8 小朱 570 
9 Benson 440 
10 鬼翼@娃娃魚 400 
資訊類作業
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2014 程式設計俱樂部 http://www.programmer-club.com.tw/
0.0625