返回顶部
首页 > 资讯 > 精选 >Java 判断字符串a和b是否互为旋转词
  • 669
分享到

Java 判断字符串a和b是否互为旋转词

旋转ava 2023-05-31 14:05:16 669人浏览 独家记忆
摘要

旋转词:把字符串str的任意部分移动到后面形成的新字符串叫做字符串str的旋转词。比如abc的旋转词有 abc,acb,cba,...判断str1和str2是否互为旋转词,其最优解可以是时间复杂度为O(n)(n为字符串的长度)方法如下:1、

旋转词:把字符串str的任意部分移动到后面形成的新字符串叫做字符串str的旋转词。

比如abc的旋转词有 abc,acb,cba,...

判断str1和str2是否互为旋转词,其最优解可以是时间复杂度为O(n)(n为字符串的长度)

方法如下:

1、判断长度是否相等

2、长度相等的话就构建大字符串,str1+str1(str1+str1中包含了str1的所有旋转词)

3、用KPM算法判断大字符串中是否包含str2

下面是具体算法实现,必须先了解KPM算法才行

package k;import java.util.Scanner;public class test1 { static int[] next; //next数组 static String str1; //字符串str1 static String str2; //字符串str2 static String str; //字符串str=str1+str1 public static void main(String[] args) {  Scanner in = new Scanner(System.in);  str1 = in.next(); //获取输入的第一个字符串  str2 = in.next(); //获取输入的第二个字符串  if (str1.length() != str2.length()) //如果长度不相等,那么就肯定不是互为旋转词   System.out.println(str1 + "与" + str2 + "不是互为旋转词");    else   {   str = str1 + str1;    makeNext(); //构建next数组    check(); //判断是否为旋转词  } } private static void check() {  int i = 0;  int j = 0;  while (i < str2.length() && j < str.length())    if (i == -1 || str2.charAt(i) == str.charAt(j)) {    i++;    j++;   } else {    i = next[i];   }   if (i >= str2.length())    System.out.println(str1 + "与" + str2 + "互为旋转词");   else     System.out.println(str1 + "与" + str2 + "不是互为旋转词"); } private static void makeNext() {  next = new int[str2.length()];  int i = 0;  int k = -1;  next[0] = -1;  while (i < str2.length() - 1) {   while (k >= 0 && str2.charAt(i) != str2.charAt(k))    k = next[k];   i++;   k++;   if (str2.charAt(i) == str2.charAt(k))    next[i] = next[k];   else    next[i] = k;  } }}

--结束END--

本文标题: Java 判断字符串a和b是否互为旋转词

本文链接: https://lsjlt.com/news/226330.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java 判断字符串a和b是否互为旋转词
    旋转词:把字符串str的任意部分移动到后面形成的新字符串叫做字符串str的旋转词。比如abc的旋转词有 abc,acb,cba,...判断str1和str2是否互为旋转词,其最优解可以是时间复杂度为O(n)(n为字符串的长度)方法如下:1、...
    99+
    2023-05-31
    旋转 ava
  • java判断字符串是否为数字
    java判断字符串是否为数字的方法:(推荐:java视频教程)方法一:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();...
    99+
    2016-11-09
    java
  • java判断字符串是否为double型
    java判断字符串是否是double public static boolean isNumeric(String str){ Pattern pattern = Pattern.compile("[0-9]+[.]{0,1}[0-9...
    99+
    2020-02-12
    java
  • java判断对象是否为字符串
    java 中的instanceof 运算符是用来在运行时指出对象是否是特定类的一个实例。instanceof通过返回一个布尔值来指出,这个对象是否是这个特定类或者是它的子类的一个实例。用法:result = object instanceo...
    99+
    2020-01-27
    java基础 java
  • Java如何判断字符串是否为数字
    可以使用如下方法判断一个字符串是否为数字:1. 使用正则表达式判断是否只包含数字字符:```javapublic static bo...
    99+
    2023-08-09
    Java
  • java字符串怎么判断是否为空?
    java判断字符串是否为空的方法方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低:if(s == null || s.equals(""))方法二: 比较字符串长度, 效率高, 是我知道的最好一个方法:if(s == null ...
    99+
    2017-12-22
    java教程 java 字符串
  • python判断字符串是否为空
    #encoding=utf-8 str="" if str.strip()=="": print("str is null") if not str.strip(): print("str is null") #enco...
    99+
    2023-01-31
    字符串 为空 python
  • java判断字符串是否为数字的方法
    Java中判断字符串是否为数字可以使用以下方法:1. 使用正则表达式判断:public static boolean isNumer...
    99+
    2023-05-13
    java判断字符串 java
  • java怎么判断字符串是否为纯数字
    可以使用正则表达式来判断一个字符串是否为纯数字。下面是一个示例代码:```javapublic class Main {public...
    99+
    2023-08-09
    java
  • java判断字符串是否包含字符
    java判断字符串是否包含字符判断一个字符串是否包含某个子串的3种方法(推荐教程:java教程)一、startsWith()这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置此方法定义的语法如下:p...
    99+
    2021-10-30
    java基础 java 字符串 包含字符
  • java判断字符串是否为合法日期
    判断字符串像“2018-02-30”这样的日期是不是正确合理的日期:(推荐:java视频教程) //假设传入的日期格式是yyyy-MM-dd HH:mm:ss, 也可以传入yyyy-MM-dd,如2018-1-1或者2018-01-01格式...
    99+
    2016-11-27
    java
  • java中怎么判断字符串是否为空
    java判断字符串是否为空的方法:首先,区分空串和null串 空串""是长度为0的字符串,它有自己的串长度(0)和内容(空),判断一个字符串为空的方法:if (str.length() == 0);或if (str.equals(""));...
    99+
    2020-10-27
    java
  • java如何判断字符串是否为整数
    可以使用Java的正则表达式来判断一个字符串是否为整数。以下是一个示例代码:```javaimport java.util.rege...
    99+
    2023-08-23
    java
  • java判断字符是否为数字
    java中判断字符是否数字的方法:(推荐:java视频教程)方法一:用JAVA自带的函数public static boolean isNumeric(String str){ for (int i = str.length();-...
    99+
    2021-06-10
    java基础 java
  • java判断字符串是否包含某字符(串)
    java判断字符串是否包含某字符串的方法:1、startsWith()这个方法有两个变体并测试如果一个字符串开头的指定索引指定的前缀或在默认情况下从字符串开始位置此方法定义的语法如下:public boolean startsWith(St...
    99+
    2020-02-16
    java基础 java
  • java判断字符串是否相等
    ==比较引用,equals 比较值。1、java中字符串的比较:==我们经常习惯性的写上if(str1==str2),这种写法在java中可能会带来问题。example1:String a="abc";String b="abc"那么a==...
    99+
    2017-07-13
    java 判断 字符串 相等
  • java中判断字符串是否是数字
    java中判断字符串是否是数字的方法如下:1、用Java自带的方法Java中有一个Character.isDig(char ch) public class CheckStrIsNum { public stat...
    99+
    2017-05-08
    java 字符串
  • java判断变量是否是字符串
    instanceof 严格来说是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例,用法为: (推荐学习:java课程)boolean result = obj instanceof Class其中 obj 为一个对...
    99+
    2015-07-05
    java入门 java
  • java判断字符串是否是中文
    java判断字符串是否是中文的方法代码如下:String string; //需要判断的内容 if(string.matches("[u4E00-u9FA5]+")){ ToastUtils.Toast(Activity_authe...
    99+
    2022-04-23
    java 字符串
  • java判断字符串是否是日期
    Java为了支持多语言,没有固定的日期格式。你需要根据自己的需要指定日期格式,然后用DateFormat类或者SimpleDateFormat类来判断是否是正确的日期格式。下面的例子供参考:public class DateUtil { ...
    99+
    2020-01-15
    java基础 java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作