我的思路是將需要判斷的字串分成兩部分來比較(如果字元個數是奇數,會自動跳過中間那個數的比較)。
首先第一部分元素入棧,第二部分存放在字元陣列中。
然後棧內元素開始出棧,出棧的元素依次和存放在陣列中的第二部分元素進行比較,形象一點說也就是從原字元正中間取兩個元素開始依次向兩邊比較(奇數個字元的話跳過中間那個數取其兩邊的數),一直比到兩邊盡頭。如果相等則是回文數。
下面貼**
#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 將乙個字串旋轉一次比較一次,...