1. 程式人生 > >順序棧來判斷迴文串

順序棧來判斷迴文串

#include<stdio.h>
#include<string>
#include<iostream>
using namespace std;

#define StackSize 100
typedef char DataType;
typedef struct{
    DataType data[StackSize];
    int top;
}SeqStack;
/*void Int(SeqStack *s){
    s->top=-1;
}*/
int judge(SeqStack *s,char *t){

    int i,len;
    char
temp; len=strlen(t); for ( i = 0; i <len/2; i++) {if(s->top<StackSize-1){ s->data[++s->top]=t[i]; }else { printf("Stack Overflow"); exit; } } if (len%2==1) i++; while (s->top>-1) { temp=s->data[s->top--]; if
(temp!=t[i]) return 0; else i++; } return 1; } int main(){ SeqStack *s; s=(SeqStack*)malloc(sizeof(SeqStack));//注意這裡如果是C語言先要初始化,不然會出錯。 s->top=-1; char t[250]; cin>>t; cout<<judge(s,t)<<endl; }

相關推薦

順序判斷

#include<stdio.h> #include<string> #include<iostream> using namespace std; #define StackSize 100 typedef char Da

判斷

“` package com.imooc; import java.util.Scanner; public class huiWen { /** * @param args * 用棧來判斷是否是迴文,中點以前壓入棧,然後再出站一一和中點以後的進行對

判斷

#include <iostream> #include <cstdlib> #include <string> using namespace std; const int MaxSize = 50; struct SqStack { char data

使用與佇列判斷

摘要 迴文串是一種順序與逆序以相同的的一類特殊的字串(形如”asdfdsa”)。可利用棧(先進後出)與佇列(先進先出)的特性來判斷字串是否為迴文串。 實現 Moslems.cpp #incl

迴圈 判斷--簡單

題目描述 迴文串是從左到右或者從右到左讀起來都一樣的字串,試程式設計判別一個字串是否為迴文串。 輸入 輸入一個字串。串長度<255. 輸出 判別輸入的字串是否為迴文串,是輸出"Y",否則輸出"N"。 樣例輸入 abcba 樣例輸出 Y #include <stdio.h>

實驗之判定

題目描述 輸入一串字元(長度小於100),判斷該串字元是否是迴文串(正序讀與逆序讀內容相同)。 輸入 輸入一串字元(長度小於100)。 輸出 若該串字元是迴文串輸出“yes",否則輸出”no“。 示例輸入 asdfgfdsa 示例輸出 yes #inclu

c語言:順序的應用(二) 判斷

#include<iostream> #include<stdio.h> #define STACK_INIT_SIZE 100 #define STACK_INCREMENT 10 using namespace std; typedef stru

數據結構——用判斷回文字符

判斷回文 遍歷 next truct turn 遍歷字符串 return std 回文 #include<iostream>#include<string>typedef int Status;using namespace std;typedef

判斷——實現

        判斷迴文是一個很常見的使用棧(stack)來實現的小示例,它能夠很輕鬆的利用“棧”這種資料結構來實現。同時,他也很好的體現了“棧”設計的基本實現和實現方法。         下面來談一談“棧”的設計思

IMAUOJ-1241 Problem C:(的判斷

題目描述 對於一個字串如果從前往後讀和從後往前讀是一樣的,那麼我們就叫他迴文串。 輸入 輸入資料有多組,每組包括一個字串s(s長度≤50,字串中不包含空格)。 輸出 對於每個字串輸出其是否是迴文串。如果是迴文串輸出“Y”,否則輸出“N”。 樣例輸入 ABC

判斷字串 實現

初學棧,思想有點笨。想把字串先存入字串陣列,然後挨個壓入棧,然後每個字元在棧中彈出,這時陣列逐漸輸出每個字元,判斷是否與之相等。 這樣利用棧,實現了字串的逆向輸出,同起始的字串進行比較,很容易判斷出是否迴文。 每次彈出棧首的字元,判斷結束後都要將其刪除,以便彈出下一個字元。

利用和佇列判斷

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace _404_棧和佇列的應

--判斷字串

棧–判斷迴文字串 思路 將字串的前半部分依次壓棧,再依次出棧後和字串後半部分一一比較。 程式碼 #include <stdio.h> #include <strin

判斷連結串列是否為以及關於問題的討論

最近在看程式設計師面試金典,在連結串列部分看到有一題問如何判斷連結串列是否是迴文串,然後想到白書中也有對最長迴文子串的討論,故想做一點總結。 一、判斷連結串列是否為迴文串 連結串列的資料結構是這樣子滴: public class Node { public

插入字元判斷是否構成(三種方法)

題目:給定一個字串,問是否能通過新增一個字母將其變為迴文串。 提要:所有程式碼皆為C++語言。 看到題,首先想到如何判斷迴文串 注:迴文串新增或刪除指定字元一定還是迴文串。 對於一個字串,從左右兩端開始,以此判斷,直到讀取超出字串中間。 程式碼如下

與佇列——判斷字串

1、程式設計序判斷一個字元序列是否是迴文,要求採用鏈式佇列和鏈式堆疊。提示:設字元陣列str中存放了要判斷的字串。把字元陣列中的字元逐個分別存入佇列和堆疊,然後逐個出佇列和退棧並比較出佇列的字元和退棧的

判斷一個字串是不是

所謂迴文字串,就是一個字串,從左到右讀和從右到左讀是完全一樣的,比如"aba"。 題目:判斷一個字串是否為迴文 解法:遞迴 遞迴的作用在於把問題的規模不斷縮少,直到問題縮少到能簡單地解決 問:如何縮少問題規模? 答:通過觀察可以知道,一個迴文字串其中內部

判斷其是否為一個,java實現

給定一個字串,判斷其是否為一個迴文串。只包含字母和數字,忽略大小寫。 您在真實的面試中是否遇到過這個題? Yes 樣例 "A man, a plan, a canal: Panama" 是一個迴文。

3.2用判斷字串

/* 演算法思想: 1.當字串的長度是偶數時,入棧的字元個數正好是整個字串的一半; 則在棧非空的情況下,依次將棧頂元素出棧,並和字串後半段的元素比較, 當棧頂元素和當前字串不相同,說明不是迴文串,返回false;反之, 將新的棧頂元素和下一個字元比較,直到棧為空時,說明是迴

資料結構C語言描述———用順序佇列判斷

所謂迴文數就是正著讀跟倒著讀一樣,比如abcba。用佇列判斷迴文數需要一個棧作為中間量,把一串數字分別進棧和入隊,按照棧先進後出和佇列先進先出的原則,如果棧頂元素跟隊頭元素相等,則棧頂元素出棧同時隊頭元素出隊,接著往下比較,知道必到該串數字的長度的一半,如果之前出棧的元素和