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

写一个算法,判断依次读入的一个以@为结束符的字母序列 ,是否为形如“序列1&序列2”模式的字符序列.
写一个算法,判断依次读入的一个以@为结束符的字母序列
,是否为形如“序列1&序列2”模式的字符序列.其中序列1和
序列2都不含字符&,且序列是序列1的逆序列.例如,a+b&b+a
是属于该模式的序列,而 1+3&3-1则不是.要求写清个语句的含义 基本思路最好配图示 最好用C++语言
急 用栈和队列实现算法 基本思路用图架解释 每条语句的含义 急
小弟真的无能为力
风之子0925 1年前 已收到1个回答 举报

追不到女生 幼苗

共回答了27个问题采纳率:81.5% 举报

假定读入的@为结束符的字符序列为S
用栈的实现:
int i=0;
// 先将‘&’前的字母入栈
while(S[i] != '' && S[i]!='&')
{
push_stack(S[i]);
i++;
}
// 如果字符串中 没有出现 ‘&’返回false
if (S[i]=='') return false;
i++;// i 定位到 & 后面第一个字符处
// 在出栈的过程中与 ' & ' 后面部分比较
while( S[i]!='' && !is_stack_empty() )
{
char c = pop_stack();
if (c == S[i]) i++;
else return false;
}
// 如果正好相同就返回true
if (S[i]=='' && is_stack_empty()) return true;
else return false;

1年前 追问

3

风之子0925 举报

是不是直接输入一个完整的序列 然后&前面的序列入栈 再出栈 与原序列进行比较 // 在出栈的过程中与 ' & ' 后面部分比较 后面的部分有点费解&后面的序列是在哪出来进行与出栈序列进行比较的?

举报 追不到女生

&后面的序列是在存放完整序列的字符串中直接访问的,就是依次访问嘛 打个比方 对于字符串 1234&4321 从头开始访问字符串 1 2 3 4 这些字符都放到栈里面了 然后 访问到 & 第一个 while 循环结束 这时访问字符串的计数器 i 指在 & 后面的4处 再进行第二个while 循环 访问字符串的计数器 i 继续往后依次访问 4 3 2 1 同时每往后移一位 栈中抛出一个字符 & 后面字符顺序 4 3 2 1 & 前面字符入栈顺序 1 2 3 4 出栈顺序 4 3 2 1 就可以这个串是对于该模式的
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.042 s. - webmaster@yulucn.com