2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > Java 旋转词 判断一个字符串循环移位后是否包含另外一个字符串

Java 旋转词 判断一个字符串循环移位后是否包含另外一个字符串

时间:2020-03-03 18:45:58

相关推荐

Java  旋转词  判断一个字符串循环移位后是否包含另外一个字符串

问题描述:这是《编程之美》里的一个问题。

解题方法:旋转词是指字符串A可以通过字符串B循环移位的得到就称A是B的旋转词;判断A是否是B的旋转词有一个规律:将字符串A与自身链接起来也就是将两个A链接起来。如果连个A链接起来的结果包含B,则A是B的旋转词。旋转词是相互的,A是B的旋转词,那么B肯定也是A的旋转词,所以用两个B链接起来判断是否包含于A也是可以的。互为旋转词的两个字符串长度肯定是相等的。

回到本题的问题上,对于A是否是B旋转词的子串也可以用类似的方法规律,即将两个B链接起来,如果链接后的结果包含于A(也就是说A是链接后字符串的一个子串),则A就是B旋转词的一个子串。

代码如下:

import java.util.*;public class 旋转词 {public static void main(String[] args){String str1 = "abcdfeg";String str2 = "ega";System.out.println(isRotate(str1, str2));}private static boolean isRotate(String b, String a) {StringBuilder sb = new StringBuilder(b);sb.append(b);return sb.toString().contains(a);}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。