當前位置:首頁 » 操作系統 » 迴文演算法c

迴文演算法c

發布時間: 2022-10-28 11:20:07

❶ 迴文(棧和隊列)(c語言

#include <stdio.h>
void main( )
{
char str[100], queue[100], stack[100], top = -1, front = 0, rear = 0, i;
int IsHuiwen = 1;
gets(str);
for(i = 0; str[i] != '\0'; i++)
{
queue[rear++] = str[i];
stack[++top] = str[i];
}
while(top !== -1 && IsHuiwen)
{
if(stack[top--] != queue[front++])
IsHuiwen = 0;
}
if(IsHuiwen) printf("yes!\n);
else printf("no!\n);
}

❷ 判斷迴文問題的C語言演算法一些問題~~

樓主你有沒有給全演算法吧...看的很暈。
我的注釋幾乎是猜出來的,如果你也看的很暈的話不要奇怪...
主要的內容應該是將讀入的字元串以某種方式放在棧中和隊列中,再通過出棧和出隊列進行判斷。

void fit(Stack &W)/*----------------讀入字元串,並將之以某種方式放入棧W中---------------*/
{
creatstack(W);
char str[200];
printf("請輸入字元串:");
scanf("%s",&str);
Bracket(W,str);)/*-------------------一個分支函數Bracket。猜測將字元串放到棧中,或者該是一半的字元串?--------------------*/
}
int Palindrome_Test() /*-----------判斷是否字元串是迴文-----------*/
{
SqStack S;
LinkQueue Q;
InitStack (S);
InitQueue (Q);
int i; /*------------定義了卻沒使用...
猜測應該是在隊列時使用,但程序沒給出ENQUEUE和OUTQUEUE的具體內容
所以無從判斷------------*/
char V;
SElemType V1,V2;
while((V=getchar())!='@')/*--------------很明顯是字元串輸入結束符,不過題目中以回車為結束,是否改為'\n'較好呢------------*/
{
Push(S,V);
EnQueue(Q,V);

}
while(S.top!=S.base) /*-------棧還沒有空------------*/
{
Pop(S,V1);//------------出棧
DeQueue(Q,V2);//------------出隊列
if(V1!=V2)
return 0;/*-----------這個代表不迴文,因為出現不符合迴文定義的情況----------*/
}
return 1;/*----------這個代表迴文---------*/

}

❸ C語言迴文演算法

我前幾天剛好做過類似題,這里才3位數比較簡單,已經調試並運行過了,絕對准確!

main()
{
int n,i,a[5];

for(i=10;i<=200;i++)/*迴文數至少為兩位數,即大於9*/
{
if(i/100>=1)/*三位數得情況*/
{
a[0]=i/100;/*百位數*/
a[1]=i%100/10;
a[2]=i%10;
if(a[0]==a[2])printf("\n%d",i);
}
else /*兩位數得情況*/
{
a[0]=i/10;
a[1]=i%10;
if(a[0]==a[1])printf("\n%d",i);
}
}
}

❹ C語言迴文演算法

我前幾天剛好做過類似題,這里才3位數比較簡單,已經調試並運行過了,絕對准確!
main()
{
int
n,i,a[5];
for(i=10;i<=200;i++)/*迴文數至少為兩位數,即大於9*/
{
if(i/100>=1)/*三位數得情況*/
{
a[0]=i/100;/*百位數*/
a[1]=i%100/10;
a[2]=i%10;
if(a[0]==a[2])printf("\n%d",i);
}
else
/*兩位數得情況*/
{
a[0]=i/10;
a[1]=i%10;
if(a[0]==a[1])printf("\n%d",i);
}
}
}

❺ c語言迴文數判定

除法和求余演算法判斷迴文數:把一個數的各個位上的數字獨立出來
打比方:123
個位上的數字3=123%10;
十位上的數字2=(123/10)%10···
不用數組的話,可以用鏈棧存儲結構,首先把輸入的數字通過除法和求余運算把一個數字的各個位拆分開來,再把拆開的一組數字的一半存入鏈棧,再出棧與剩餘的一半數字作比較。

❻ c語言求迴文子串的個數的高效演算法

class Palindrome {
public:
int getLongestPalindrome(string A, int n) {
int max=0,count=0;
for(int i=0;i<n;i++) //i作為迴文串的中心
{
for(int j=0;((i-j)>=0)&&((i+j)<n);j++)//若迴文串是奇數個,i中心前面有j個,後面有j個
{
if(A[i-j]!=A[i+j])
break;
count=j*2+1;
}
if(max<count)
max=count;
for(int j=0;((i-j)>=0)&&((i+1+j)<n);j++)//若迴文串是偶數個,i和i+1是中心,前面有j個,後面有j個
{
if(A[i-j]!=A[i+1+j])
break;
count=j*2+2;
}
if(max<count)
max=count;
}
return max;

}

};

熱點內容
qqandroid版 發布:2025-07-07 22:29:59 瀏覽:40
python解壓gz 發布:2025-07-07 22:03:19 瀏覽:620
安卓俄羅斯方塊源碼 發布:2025-07-07 21:56:11 瀏覽:474
安卓手機之王是哪個手機 發布:2025-07-07 21:44:30 瀏覽:613
安卓照片存儲位置 發布:2025-07-07 21:31:58 瀏覽:964
kingcmsphp 發布:2025-07-07 21:31:49 瀏覽:393
微信的鎖屏密碼是什麼 發布:2025-07-07 21:28:52 瀏覽:758
樹莓派自帶ftp開啟 發布:2025-07-07 21:11:41 瀏覽:51
智慧樹用腳本會怎麼樣 發布:2025-07-07 21:05:48 瀏覽:517
隨機啟動腳本 發布:2025-07-05 16:10:30 瀏覽:536