利用棧來判斷乙個字元是否為回文數

2021-09-02 11:38:57 字數 807 閱讀 1737

我的思路是將需要判斷的字串分成兩部分來比較(如果字元個數是奇數,會自動跳過中間那個數的比較)。

首先第一部分元素入棧,第二部分存放在字元陣列中。

然後棧內元素開始出棧,出棧的元素依次和存放在陣列中的第二部分元素進行比較,形象一點說也就是從原字元正中間取兩個元素開始依次向兩邊比較(奇數個字元的話跳過中間那個數取其兩邊的數),一直比到兩邊盡頭。如果相等則是回文數。

下面貼**

#includeusing namespace std;

#define stack_init_size 100;

#define stackincrement 10;

typedef struct stack

stack,*stack;

bool initstack(stack &s)

s.top=s.base;

s.stacksize=stack_init_size;

return true;

}int push(stack &s,char c)

void output(stack &s)

{ char *p;

int i;

p=s.top-1;

for(i=0;i>data;

int len=strlen(data);

int hl=strlen(data)/2;

for(int i=0;i**執行結果

判斷乙個字串是否為另外乙個字串旋轉之後的字串

例如 給定s1 aabcd和s2 bcdaa,返回1 給定s1 abcd和s2 acbd,返回0.aabcd左旋乙個字元得到abcda aabcd右旋乙個字元得到daabc 思路 把aabcd複製兩遍,看結果是否在aabcdaabcd 中 左旋和右旋的結果都在aabcdaabcd 中 include...

oracle判斷乙個字元是否是數字

方法一 返回值為null的表示字串,返回值大於等於1的表示有非數字字元 select lengthb ltrim 1248346 0123456789 from dual 或 select lengthb rtrim 1248346a 0123456789 from dual 方法二 返回值為nul...

判斷乙個字串是否為另乙個字串旋轉後的字串

判斷乙個字串是否為另外乙個字串旋轉之後的字串。例如 給定s1 aabcd和s2 bcdaa,返回1 給定s1 abcd和s2 acbd,返回0.aabcd左旋乙個字元得到abcda aabcd左旋兩個字元得到bcdaa aabcd右旋乙個字元得到daabc 解題思路 1 將乙個字串旋轉一次比較一次,...