AT_njpc2017_g.交換法則

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

在一些编程语言中,对于两个字符串 s1s_1 和 s2s_2,定义了表示字符串连接的运算符 ++。例如,当 s1=as_1=a,s2=bs_2=b 时,s1+s2=abs_1+s_2=ab。然而,表示字符串连接的运算符 ++ 与表示数值加法的运算符 ++ 不同,不满足交换律。例如,当 s1=as_1=a,s2=bs_2=b 时,s1+s2=abs_1+s_2=ab,而 s2+s1=bas_2+s_1=ba,因此不满足交换律。

Yurafuna 君考虑了一种对两个字符串满足交换律的运算符 @@,定义如下:

  • s1@s2=min⁡(s1,s2)+max⁡(s1,s2)s_1@s_2 = \min(s_1, s_2) + \max(s_1, s_2)

这里,min⁡\min 和 max⁡\max 表示按字典序比较,++ 表示字符串的连接。例如,s1=as_1=a,s2=bs_2=b 时,s1@s2=min⁡(a,b)+max⁡(a,b)=a+b=abs_1@s_2 = \min(a, b) + \max(a, b) = a + b = ab。同样,s2@s1=min⁡(a,b)+max⁡(a,b)=a+b=abs_2@s_1 = \min(a, b) + \max(a, b) = a + b = ab,因此满足交换律。

Yurafuna 君非常喜欢这个运算符 @@,于是他把各种字符串拆分成单个字符后,只用运算符 @@ 和改变优先级的括号来尝试还原回原字符串。例如,字符串 apple 可以通过 ((a@(p@p))@l)@e((a@(p@p))@l)@e 或 e@(((p@p)@a)@l)e@(((p@p)@a)@l) 等表达式还原为 apple。然而,他发现字符串 pen 拆分后无法还原回原字符串。对于无法还原的字符串,他无法进行这个游戏,因此需要判断一个字符串是否可以还原。

给定一个字符串 SS,请判断将其拆分为单个字符后,是否可以仅用运算符 @@ 和括号还原回原字符串。

输入格式

输入通过标准输入给出,格式如下:

SS

输出格式

如果可以还原 SS,输出一行 Yes;否则输出一行 No。

输入输出样例

  • 输入#1

    abc

    输出#1

    Yes
  • 输入#2

    acb

    输出#2

    Yes
  • 输入#3

    bca

    输出#3

    No
  • 输入#4

    cba

    输出#4

    No
  • 输入#5

    aaba

    输出#5

    No

说明/提示

限制

  • 1≤∣S∣≤30001 \leq |S| \leq 3000(∣S∣|S| 表示字符串 SS 的长度)
  • SS 仅由小写英文字母组成。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页