AT_njpc2017_g.交換法則
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在一些编程语言中,对于两个字符串 s1 和 s2,定义了表示字符串连接的运算符 +。例如,当 s1=a,s2=b 时,s1+s2=ab。然而,表示字符串连接的运算符 + 与表示数值加法的运算符 + 不同,不满足交换律。例如,当 s1=a,s2=b 时,s1+s2=ab,而 s2+s1=ba,因此不满足交换律。
Yurafuna 君考虑了一种对两个字符串满足交换律的运算符 @,定义如下:
- s1@s2=min(s1,s2)+max(s1,s2)
这里,min 和 max 表示按字典序比较,+ 表示字符串的连接。例如,s1=a,s2=b 时,s1@s2=min(a,b)+max(a,b)=a+b=ab。同样,s2@s1=min(a,b)+max(a,b)=a+b=ab,因此满足交换律。
Yurafuna 君非常喜欢这个运算符 @,于是他把各种字符串拆分成单个字符后,只用运算符 @ 和改变优先级的括号来尝试还原回原字符串。例如,字符串 apple 可以通过 ((a@(p@p))@l)@e 或 e@(((p@p)@a)@l) 等表达式还原为 apple。然而,他发现字符串 pen 拆分后无法还原回原字符串。对于无法还原的字符串,他无法进行这个游戏,因此需要判断一个字符串是否可以还原。
给定一个字符串 S,请判断将其拆分为单个字符后,是否可以仅用运算符 @ 和括号还原回原字符串。
输入格式
输入通过标准输入给出,格式如下:
S
输出格式
如果可以还原 S,输出一行 Yes;否则输出一行 No。
输入输出样例
输入#1
abc
输出#1
Yes
输入#2
acb
输出#2
Yes
输入#3
bca
输出#3
No
输入#4
cba
输出#4
No
输入#5
aaba
输出#5
No
说明/提示
限制
- 1≤∣S∣≤3000(∣S∣ 表示字符串 S 的长度)
- S 仅由小写英文字母组成。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?