將字符串中的回文數輸出


/*
    給定一個字符串(暫時我還無法確定這個是叫做字符
 串,還是為儲存的變量為 char 類型的數組),輸出
 所有長度至少為2的回文子串。回文子串即從左往右輸
 出和從右往左輸出結果是的字符串。
 比如:qweewq都是回文字符串。
*/
#include<cstdio>
#include<string.h>
int main()
{
 char c[505];
    int n;
    scanf("%s",c);
    n=strlen(c);    
 // strlen()函數作用是統計括號內的字符串中的字符個數。 
    for(int m=2; m<=n; ++m)  
 // 從 m=2 開始,判定含有 m 個字符的回文子串是否存在。 
        for(int i=0; i+m<=n; ++i)
  /*
      循環了 n-m+1 次。
   舉例說明:
       假設一個字符串有 5 個字符,且此時是判定此字符串中是否含有
    字符數為 3 的回文子串。則是以 3 為單位,從字符串的首位比較
    到末尾那一組,此時就可以得到比較次數為 3=5-3+1。
    即  n-m+1 次。  
  */ 
        {
            bool flag = 0; 
    // bool類型變量,默認為 false ,且只有 true 和 false 兩種。 
    // 此處 flag 賦值為 0 或是 1 都可以,但后面的 flag 需要與前面對應。 
            for(int j=i; j<i+m; ++j) 
   //  循環 m 次。  
                if(c[j]!=c[i+m-j+i-1])
    // 如果使用等號,則后面的判定無效。   
    /*
      當 m=2 循環2次: 
      當 i=0 時,最開始的一次循環是比較 c[0] 與 c[1], 然后是 c[1] 與 c[0]; 
      當 i=1 時,最開始的一次循環是比較 c[1] 與 c[2], 然后是 c[2] 與 c[1];
      ...........                     c[a] 與 c[a+1],      c[a+1] 與 c[a]; 
      當 m=3 循環3次:
         當 i=0 時,最開始的一次循環是比較 c[0] 與 c[2], 然后是 c[1] 與 c[1];
      ...........                     c[a] 與 c[a+2],    c[a+1] 與 c[a+1];
      ..........
         
                */
    {                       
                    flag = 1;             
                    break;
                }
            if(!flag) 
            {
                for(int j=i; j<i+m; ++j)  
    /*
     此處循環是為了將已經確定下來的回文子串輸出,且此回文子
     串中含有 m 個字符。 
                */ 
    {
      printf("%c",c[j]);
    }  
                printf("\n");
            }
        }
    return 0;
}
/*
     程序輸出結果為:
     qwerewqhhddacb
  hh
  dd
  ere
  werew
  qwerewq
  
  --------------------------------
  Process exited after 11.05 seconds with return value 0
  請按任意鍵繼續. . . 
  結論:
     在想要看懂一個陌生程序是,可以先從程序的功能出發,自己思考如果此程序
  是自己寫,需要哪些步驟,可以將需要的步驟看成一個個模塊,在單獨考慮每
  個模塊的寫法。將自己的與程序對照。另外,當程序中有多個循環控制結構嵌
  套使用時,可以將循環的前幾步采取試數的方式寫出來,在比較其中的共同點
  尋找每個循環的用處。 
*/ 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM