早教吧 育儿知识 作业答案 考试题库 百科 知识分享

写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如“序列1&序列2”模式的字符序列.写一个算法,判断依次读入的一个以@为结束符的字母序列,是否为形如“序列1&序列2”模

题目详情
写一个算法,判断依次读入的一个以@为结束符的字母序列 ,是否为形如“序列1&序列2”模式的字符序列.
写一个算法,判断依次读入的一个以@为结束符的字母序列
,是否为形如“序列1&序列2”模式的字符序列.其中序列1和
序列2都不含字符&,且序列是序列1的逆序列.例如,a+b&b+a
是属于该模式的序列,而 1+3&3-1则不是.要求写清个语句的含义 基本思路最好配图示 最好用C++语言
急 用栈和队列实现算法 基本思路用图架解释 每条语句的含义 急
小弟真的无能为力
▼优质解答
答案和解析
假定读入的@为结束符的字符序列为S
用栈的实现:
int i=0;
// 先将‘&’前的字母入栈
while(S[i] != '\0' && S[i]!='&')
{
push_stack(S[i]);
i++;
}
// 如果字符串中 没有出现 ‘&’返回false
if (S[i]=='\0') return false;
i++;// i 定位到 & 后面第一个字符处
// 在出栈的过程中与 ' & ' 后面部分比较
while( S[i]!='\0' && !is_stack_empty() )
{
char c = pop_stack();
if (c == S[i]) i++;
else return false;
}
// 如果正好相同就返回true
if (S[i]=='\0' && is_stack_empty()) return true;
else return false;
看了 写一个算法,判断依次读入的一...的网友还看了以下: