1. 程式人生 > >使用棧與佇列判斷迴文串

使用棧與佇列判斷迴文串

摘要

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

實現

Moslems.cpp

#include<stack>
#include<queue>
#include<iostream>
using namespace std;
#define STR_LENGH 300
/*
    利用棧和佇列判斷輸入的字串是否為迴文串
*/
bool isMoslems(char* str) {
    stack<char> s;
    queue<char
>
q; string moslems = str; //輸入棧與佇列的內容 for (int i = 0; i < moslems.length(); i++) { char temp = moslems[i]; s.push(temp); q.push(temp); } //char值相同繼續判斷,直到棧與佇列為空 while (!s.empty() && !q.empty()) { if (s.top() != q.front()) { break
; } s.pop(); q.pop(); } //棧與佇列全為空則為迴文串 return s.empty() && q.empty(); } void main() { int times = 0; while (times<4) { cout << "輸入一個字串:"; char str[STR_LENGH]; gets_s(str, STR_LENGH); char* ok = isMoslems(str) ? "YES"
: "NO"; cout << ok << endl; times++; } system("pause"); return; }

測試

這裡寫圖片描述