一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|編程技術|正則表達式|

服務器之家 - 編程語言 - JAVA教程 - Java 判斷字符串a和b是否互為旋轉詞

Java 判斷字符串a和b是否互為旋轉詞

2020-09-30 15:42妖久 JAVA教程

本篇文章主要介紹了判斷字符串a和b是否互為旋轉詞的相關知識,具有很好的參考價值。下面跟著小編一起來看下吧

旋轉詞:把字符串str的任意部分移動到后面形成的新字符串叫做字符串str的旋轉詞。

比如abc的旋轉詞有 abc,acb,cba,...

判斷str1和str2是否互為旋轉詞,其最優解可以是時間復雜度為O(n)(n為字符串的長度)

方法如下:

1、判斷長度是否相等

2、長度相等的話就構建大字符串,str1+str1(str1+str1中包含了str1的所有旋轉詞)

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

下面是具體算法實現,必須先了解KPM算法才行

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
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;
  }
 }
}

以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持服務器之家!

原文鏈接:http://www.cnblogs.com/tangZH/p/6655984.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 92国产福利久久青青草原 | 欧美一区二区三区免费看 | 三级理论在线观看 | 亚洲国产在线 | 精品久久久噜噜噜久久久app | 国产精品久久久久久久午夜片 | 国产自在自线午夜精品之la | 国产亚洲视频在线 | 太紧太深了受不了黑人 | 欧美高清在线精品一区二区不卡 | 91大神在线精品视频一区 | 169pp美女| 极品主播的慰在线播放 | 国产一区日韩二区欧美三 | 日本阿v精品视频在线观看 日本xxx片免费高清在线 | 九九九九九九精品免费 | 国产视频中文字幕 | 欧美性4khd720 | 久久全国免费观看视频 | 侵犯小男生免费视频网站 | 99在线视频精品费观看视 | 奇米色7777| 王雨纯羞羞 | 国产精品福利短视在线播放频 | 亚洲zooz人禽交xxxx | 日本国产最新一区二区三区 | 亚洲精品私拍国产福利在线 | 九九免费高清在线观看视频 | 亚洲精品永久免费 | 亚洲毛片网 | 欧美一级特黄特色大片 | 色婷婷激婷婷深爱五月老司机 | 第一国内永久免费福利视频 | 91社区在线观看精品 | 午夜国产在线视频 | 91精品国产色综合久久不卡蜜 | 希岛爱理aⅴ在线中文字幕 午夜综合网 | 国产亚洲福利精品一区 | 女教师波多野结衣高清在线 | 午夜dj影院在线观看完整版 | 男生操女生漫画 |