题解 | #小易喜欢的单词#

小易喜欢的单词

http://www.nowcoder.com/practice/ca7b8af83e2f4ec1af2f23d6733223b5

//关于两个子序列条件找到4个索引位置,比较即可

#include<iostream>
#include<stdio.h>
#include<map>
using namespace std;

int main(void)
{
    string str;
    cin>>str;
    
    map<char,int> mp;
    
    mp[str[0]]++;
    
    int len = str.size();
    
    int start1 = 0;
    int end1 = len%2==0?len/2-1:len/2-1;
    
    int start2 = len%2==0?len/2:len/2+1;
    int end2 = len-1;
    
    int one_1=-1;
    int one_2=-1;
    int two_1=-1;
    int two_2=-1;
    
    for(int i=start1;i<=end1;i++)
    {
        for(int j=start2;j<=end2;j++)
        {
            if(str[i]==str[j])
            {
                one_1=i;
                two_1=j;
            }
        }
    }
    
    if(one_1!=-1&&two_1!=-1)
    {
          for(int i=end1;i>=start1;i--)
        {
            for(int j=end2;j>=start2;j--)
        {
            if(str[i]==str[j])
            {
                one_2=i;
                two_2=j;
            }
        }
    }
        
    }
    
    if(one_1>one_2&&two_1>two_2)
    {
            cout<<"Dislikes";
            return 0;
    }
    
    for(int i=1;i<str.size();i++)
    {
        if(str[i]<'A'||str[i]>'Z')
        {
            cout<<"Dislikes";
            return 0;
        }
        
        if(str[i]==str[i-1])
        {
            cout<<"Dislikes";
            return 0;
        }
        
        mp[str[i]]++;
        
    }
    
    for(map<char,int>::iterator it=mp.begin();it!=mp.end();it++)
    {
        if(it->second>=4)
        {
            cout<<"Dislikes";
            return 0;
        }
    }
    
    cout<<"Likes";
    
    return 0;
}
全部评论

相关推荐

怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
07-09 18:28
门头沟学院 Java
写着提前批,结果还要实习4个月以上???
程序员牛肉:这种不用看,直接投了,面试的时候问对应的HR就行。有可能他们是直接复制的暑期实习的模板。
点赞 评论 收藏
分享
流浪的神仙:无恶意,算法一般好像都得9硕才能干算法太卷啦
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 11:45
你不要过来啊啊啊啊啊啊啊
码农索隆:对面:“今天你不面也得面”
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务