算法练习(20):字符串的回环变位(1.2.6)

本系列博客习题来自《算法(第四版)》,算是本人的读书笔记,如果有人在读这本书的,欢迎大家多多交流。为了方便讨论,本人新建了一个微信群(算法交流),想要加入的,请添加我的微信号:zhujinhui207407 谢谢。另外,本人的个人博客 http://www.kyson.cn 也在不停的更新中,欢迎一起讨论

算法(第4版)

知识点

  • Java中的字符串
  • 回环变位

题目

1.2.6 如果字符串 s 中的字符循环移动任意位置之后能够得到另一个字符串 t,那么 s 就被称为 t 的回环变位(circular rotation)。例如,ACTGACG 就是 TGACGAC 的一个回环变位,反之亦然。判定这个条件在基因组序列的研究中是很重要的。编写一个程序检查两个给定的字符串 s 和 t 是否互为回环变位。提示:答案只需要一行用到 indexOf()、length() 和字符串连接的代码。


1.2.6 A string s is a circular rotation of a string t if it matches when the characters are circularly shifted by any number of positions; e.g., ACTGACG is a circular shift of TGACGAC, and vice versa. Detecting this condition is important in the study of genomic sequences. Write a program that checks whether two given strings s and t are circular

答案


public static boolean isCircularRotation(String s, String t) {
        return s.length() == t.length() && (t + t).contains(s);
    }

代码索引

CircularRotation.java

视频讲解

点此观看分析视频

广告

我的首款个人开发的APP壁纸宝贝上线了,欢迎大家下载。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,353评论 0 33
  • 你想知道被绑架的感觉么? 友人D自从大学毕业后甚少回来与我们相聚。每次见面,她都会做一个重要的决定刷新我对她的认识...
    喵小馨阅读 1,254评论 0 0
  • 时间是2017年3月30日,这一天晚上是著名的投资人徐小平老师的直播,之前就知道徐小平老师,真格基金创始人,投了很...
    阿伦影子阅读 3,627评论 1 3
  • 说这句话也许大多数人认为我酸,吃不到葡萄咒葡萄的不是。 我说的是事实,当然也有足够的理论支撑。本人...
    重身轻财阅读 4,338评论 0 50
  • 春风和煦,窗外的景格外诱人。在阴暗的角落,问你有多少愁思?你掩面欲泣,看得出春风不知往昔的峥嵘,明月皎皎,映照着逝...
    Lian子心阅读 1,397评论 2 2