打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Kotlin Heroes 科特林英雄 练习赛 1 E 题 :可以给全部的狗狗染色吗?

Kotlin Heroes 科特林英雄 练习赛 1 E 题 :可以给全部的狗狗染色吗?

题目:

假设自然界中总共有 26 种可能的幼犬颜色,并用从az在内的字母表示;

狗狗标准化委员会新出了规则:严格禁止狗狗之间具有多样性,所有的幼犬都应该是相同的颜色。

因此,委员会的雇员索菲亚被分配了将一些幼犬重新着色的任务,以消除差异化;使得所有幼犬具有一种共同的颜色。

由于某些官僚的原因以及有限的预算,索菲亚只能执行一项操作:她只能将 2 只及以上的狗狗染成其他颜色;幸运的是,此操作可以重复多次(包括 0 次);

例如:有 7 只狗狗,颜色分别是abababc,那么索菲亚可以在第一次将a颜色的 3 只狗狗染成c颜色,得到cbcbcbc,再将b颜色的 3 只狗狗染成c颜色;得到ccccccc,索菲亚就完成了任务


要求:

输入项:

第一行需要先输入一个整数 n — 需要染色的狗狗数量;第二行需要输入 n 个英文字母组成的字符串,表示各狗狗的颜色

类似:

// 输入:
3
aab

输出项:

如果可以给全部狗狗染成 1 种颜色则返回 Yes;否则返回No;类似:

// 输出:
Yes

分析:

  • 输入的字符串,肯定是需要有某个字母是重复出现 2 次及以上的才可以操作染色
  • 所以如果去重以后的字符串长度与原始字符串一致,则表明无法执行染色
  • 除此之外,都可以执行染色,比如 aabc,只要能执行第 1 步,将 a 颜色染成 b 颜色;无论其他颜色的狗狗有多少,都可以重复操作,全部染色成功: aabc -> bbbc -> cccc
  • 所以我们只需要判断是否存在有其中某个颜色是重复的,即转换成数组,去重以后的长度是否与原始字符串一致

答案:

fun main() {
    readLine()
    println(readLine()!!.run { if (length != 1 && toCharArray().distinct().size == length) "No" else "Yes" })
}
// 输入:
// 12
// aaeefffffddd
// ----------
// 输出:
// Yes

今天的题目,大家学会了吗?

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Heroes
狗狗不小心被染成粉红色 洗12次仍无法清除
把狗狗染色长颈鹿,主人表示很早就想这样做,刚好碰上万圣节
(35):染まる★染める - 1 日语自/他动词专栏 - 语法学习 - 冰冻咖啡日语 - ...
【雨巷同题】第148期同题:染
文玩小知识:不同颜色玛瑙的特点
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服