原题:编写算法,识别一个字符串是否形如"序列1 & 序列2"模式的字符序列。其中序列1和序列2中都不含字符'&',且序列2是序列1的逆序。例如:"a+b&b+a"是属该模式的字符序列,而"2+3&3-2"不是。
分析法1:对于给定的字符串 s 在读到字符 '&' 之前入栈,然后再逐个读 '&' 之后的字符并和栈顶字符比较,若相等,则出栈,否则序列2不是序列1的逆序列。
方法1:
#include<iostream.h>
#define SIZE 100//字符串数组的大小
int IsReverse(char *str)
{//判断字符串是否左右对称
int strlen=0,i,j;//用于记录字符串中的字符个数
while(str[strlen]!='\0')strlen++;
/*用两个指针,开始时它们分别指向字符串的首尾字符,然后比较两字符,若相等则指针
分别前进和后退,直到两个字符不等或两指针相遇,若两指针不能相遇,则说明字符串左
右不对称*/
for(i=0,j=strlen-1;i<j;i++,j--)
{
if(str[i]!=str[j]