Evenly Separated Strings

链接:https://ac.nowcoder.com/acm/contest/18462/L
来源:牛客网

题目描述
Given a string consisting of lowercase letters. We say the string is evenly separated if and only if there is an even number of characters between every pair of the same characters. For example, abba is evenly separated while aabba is not. For this problem, you will write a program to determine whether the given string s is evenly separated or not.
输入描述:
Input consists of a single line containing the string of at most 1,000,000 lower-case letters to check if it is evenly separated.
输出描述:
The output line consists of the word YES if the string is evenly separated or NO if the string is not evenly separated.
示例1
输入
复制
abba
输出
复制
YES
示例2
输入
复制
aabba
输出
复制
NO
示例3
输入
复制
abcdefyzfedcba
输出
复制
YES

题解:本题就是给出了一个关于字符串的定义后让我们进行相关的字符串判断,我们通过简单的验证可以发现当字符串有相同字符且中间的个数为偶数的时候,此时的字符是符合我们的题意的,但是如果在这么多的情况中一旦出现字符串相同并且此时中间的个数位奇数的时候,那么此时的字符就是不符合题意的。那么我们进行相关的判断的时候,只需要进行双重遍历字符串,当字符相等的时候并且此时中间的字符数为奇数,这就是不符合题意的,当上述情况并没有发生时,就是符合题意的答案。
代码:

#include<bits/stdc++.h>
using namespace std;
int main()
{
	string s;
	cin>>s;
	for(int i=0;i<s.length();i++)
    {
        for(int j=i+1;j<s.length();j++){
       if(s[i]==s[j]&&(j-i-1)&1)//错误情况的判断
       {cout<<"NO"<<endl;return 0;}        
      }
    }
    cout<<"YES"<<endl;
	return 0;
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值