首页 > 代码库 > 特定字符序列的判断(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)