小明的旅行

最近正是春节期间,小明的爸爸决定带着一家人出去旅游。
于是他们开着小车准备从城市A开车到城市B,由于早上起的太早,所以小明很快就在车上睡着了,过了一会,小明醒了过来,开始看外面的风景,他发现为了迎接春节的到来,高速路旁边每隔一段距离就有一种特定颜色的彩带。
于是他开始记住他看到的彩带的颜色,但是他还是比较困,所以很快又睡着了,过了一会他又醒了,又开始记忆彩带的颜色,然后他又开始睡觉,这次直到到了城市B才醒过来。
在旅馆里面,他告诉父母他在路上做了什么,并写下了在清醒时看到的彩带颜色序列。小明的父母觉得小明平时有点小笨,不可能记住这么多的颜色,他们给了你在高速路上经过的彩带的颜色列表,并请你找出小明是否可以在从A到B的路上或者从B到A的路上看到这些序列。
小明的父母使用小写字母表示颜色。相同的字母表示相同的颜色,不同的字母表示不同的颜色。

输入描述

输入数据包含三行。第一行包含一个非空字符串,其长度不超过105,该字符串由小写字母组成,表示从A到B的途中彩带的颜色。从B到A的途中,汽车经过相同的路径,但顺序相反。

第二行包含小明在第一次醒来期间写的颜色序列。第三行包含在第二次醒来期间写的颜色序列。这两个序列都是非空的,由小写字母组成,每个序列的长度不超过100个字母。每个序列都按时间顺序编写。

输出描述

如果小明只能从A到B的路上看到这个颜色序列,则输出A->B
如果小明只能从B到A的路上看到这个颜色序列,则输出B->A
如果小明既能从A到B的路上看到这个颜色序列,也能从B到A的路上看到这个颜色序列,则输出all
如果小明无法看到这样的序列,则输出no

用例输入 1 

aaacaaa
aca
aa

用例输出 1 

all

提示

因为汽车是不断地在前进,所以不能看到同一个彩带两次。城市A和城市B是出发点和到达地,没有挂彩带。

上代码可能有点差错:

#include<bits/stdc++.h>
using namespace std;
int abm,bam;
string ab;
string ba;
string f1,f2;
int main(){
      cin>>ab>>f1>>f2;
      int l=ab.length();
      for(int j=l-1;j>=0;j--){
       ba.push_back(ab[j]);
       }
      if(ab.find(f1)!=-1){
       abm++;
       }
       if(ab.find(f2)!=-1){
       abm++;
       }
       if(ba.find(f1)!=-1){
       bam++;
       }
       if(ba.find(f2)!=-1){
       bam++;
       }
      if(bam and abm){
      cout<<"all";
      return 0;
      }
      if(abm){
      cout<<"A->B";
      return 0;
      }
      if(bam){
      cout<<"B->A";
      return 0;
      }
    else
    {
         cout<<"no";
    }
    
     return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值