字串處理 回文判斷

2021-07-11 14:16:26 字數 1467 閱讀 6500

題目描述:

1.給定乙個字串,判斷其是否為回文串.

2.判斷乙個單鏈表是否回文.

對於字串,可以從兩頭想中間掃瞄,在掃瞄過程中如果頭和尾的字元始終相同,則該字串是回文串.

#include 

#include

#include

#include

using

namespace

std;

bool ispalindrome(const

char *s, int n);

int main()

str[strlen(str) - 1] = '\0'; //必須新增此句,因為fgets讀取一行,會將'\n'也保留

if(ispalindrome(str, strlen(str)))

cout

<< "true"

<< endl;

else

cout

<< "false"

<< endl;

return0;}

bool ispalindrome(const

char *str, int n)

return

true;

}

對於單鏈表回文串的判斷(不改變鍊錶結構): 先找到單鏈表的中點,將後半部分儲存再與前半部分一一對比.

#include 

#include

#include

#include

using

namespace

std;

struct node

;struct node *findmid(struct node *head);

bool ispalindrome(struct node *head, struct node *mid);

int main()

else

s = null;

}struct node *mid = findmid(head);

if(mid == null)

if(ispalindrome(head, mid))

cout

<< "true"

<< endl;

else

cout

<< "false"

<< endl;

while(head != null)

return0;}

struct node *findmid(struct node *head)

return p;

}bool ispalindrome(struct node *head, struct node *mid)

for(int i = 0; i < str.size(); i++)

return

true;

}

判斷字串回文

方法一 使用reverse split separator,howmany 把乙個字串分隔成字串陣列 param separator 必需。字串或正規表示式,從該引數指定的地方分割 stringobject param howmany 可選。該引數可指定返回的陣列的最大長度。如果設定了該引數,返回的...

字串 遞迴判斷回文

題目描述 若乙個字串的正序與倒序相同,則稱其為回文字串 現在給定乙個字串,使用遞迴的方法,判斷他是否是回文字串。輸入描述 字串,長度不超過100000 輸出描述 若是,則輸出 yes.若不是,則輸出 no.樣例輸入 abcadacba 樣例輸出 yes.include pch.h include i...

棧判斷字串回文

手寫棧 include includeusing namespace std 搞乙個棧結構體 struct stack int main 因為當字串為偶數時,mid 1就是後半段字串,但是為奇數時,mid 2才是後半段字串 if len 2 1 開始迴圈依次出棧跟後續字串比較即可 while s.t...