【数据结构 C描述】设计一个算法,用于检测给定的字符串是否为对称串。

版权声明:AlanLee版权所有 https://blog.csdn.net/qq1445654576/article/details/83217933

【数据结构 C描述】设计一个算法,用于检测给定的字符串是否为对称串。

在这里插入图片描述

所谓对称串,就是字符串从左往右读和从右往左读的序列一样。
例如:
abccba是对称串。
abcabc不是对称串。

//main.cpp
#include <iostream>
#include <malloc.h>
#include <stdlib.h>
#include "SqStack.h"
#include "LinkStack.h"
using namespace std;

int main()
{
	char arr[50];
	cout << "\n请出入一个对称串:";
	cin >> arr;
	cout << "\n\n判断该串是否为对称串的情况:";
	bool isSymmetryString(char a[]);
	isSymmetryString(arr);

	system("pause");
	cout << "\n";
	return 0;
}


/*
设计一个算法,用于检测给定的字符串是否为对称串。
*/
//检测是否为对称串的函数
bool isSymmetryString(char a[]) {
	SqStack *S;
	InitStack(S);
	ElemType e;//存储元素的变量
	for (int i = 0; a[i] != '\0'; i++) {
		Push(S, a[i]);
	}
	for (int i = 0; a[i] != '\0'; i++) {
		Pop(S, e);
		//将数组中的元素与出栈的元素对比,栈中的元素后进先出
		if (a[i] != e) {
			cout << "\n该串不是对称串。\n";
			DestoryStack(S);
			return false;
		}
	}
	cout << "\n该串是对称串。\n" << endl;
	DestoryStack(S);
	return true;
}

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq1445654576/article/details/83217933