首页 > 代码库 > 特定字符序列的判断(1028)
特定字符序列的判断(1028)
<style>p { margin-bottom: 0.25cm; line-height: 120% }</style>
描述
编写一程序,识别依次读入的一个以“#”为结束符的字符序列是否为形如“序列1@序列2”模式的字符序列。期中序列1和序列2中都不含字符“@”,且序列2是序列1的逆序列。例如“a+b@b+a”是满足条件的序列字符,而“1+3@3-1”则不是。
input
一个以“#”结束的字符序列。
output
是满足条件的字符序列输出“yes!”;否则输出“no!”。
样例输入
a+b@b+a#
样例输出
yes!
这道题没什么难度,具体代码如下
#include<iostream>
#include<string.h>
using
namespace
std;
int
main(){
char
*p=
new
char
[100];
cin>>p;
int
len=
strlen
(p);
int
num1=0,num2=0,pos=0;
for
(
int
i=0;i<len;i++){
if
(p[i]==
‘@‘
){
num1++;
pos=i;
}
if
(p[i]==
‘#‘
){
num2++;
}
}
if
(p[len-1]!=
‘#‘
||p[len-2]==
‘@‘
||num1!=1||num2!=1){
cout<<
"no!"
;
return
0;
}
for
(
int
i=pos-1,j=pos+1;i>=0&&j<=len-1;i--,j++){
if
(p[i]!=p[j]){
cout<<
"no!"
;
return
0;
}
}
cout<<
"yes!"
;
delete
[]p;
return
0;
}
特定字符序列的判断(1028)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。