最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java 判斷字符串a(chǎn)和b是否互為旋轉(zhuǎn)詞

 更新時(shí)間:2017年05月14日 08:50:12   作者:妖久  
本篇文章主要介紹了判斷字符串a(chǎn)和b是否互為旋轉(zhuǎn)詞的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧

旋轉(zhuǎn)詞:把字符串str的任意部分移動(dòng)到后面形成的新字符串叫做字符串str的旋轉(zhuǎn)詞。

比如abc的旋轉(zhuǎn)詞有 abc,acb,cba,...

判斷str1和str2是否互為旋轉(zhuǎn)詞,其最優(yōu)解可以是時(shí)間復(fù)雜度為O(n)(n為字符串的長(zhǎng)度)

方法如下:

1、判斷長(zhǎng)度是否相等

2、長(zhǎng)度相等的話就構(gòu)建大字符串,str1+str1(str1+str1中包含了str1的所有旋轉(zhuǎn)詞)

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

下面是具體算法實(shí)現(xiàn),必須先了解KPM算法才行

package k;

import java.util.Scanner;

public class test1 {
 static int[] next; //next數(shù)組
 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(); //獲取輸入的第一個(gè)字符串
  str2 = in.next(); //獲取輸入的第二個(gè)字符串

  if (str1.length() != str2.length()) //如果長(zhǎng)度不相等,那么就肯定不是互為旋轉(zhuǎn)詞
   System.out.println(str1 + "與" + str2 + "不是互為旋轉(zhuǎn)詞");
  
  else 
  {
   str = str1 + str1; 
   makeNext(); //構(gòu)建next數(shù)組
 
   check(); //判斷是否為旋轉(zhuǎn)詞
  }
 }

 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 + "互為旋轉(zhuǎn)詞");
   else 
    System.out.println(str1 + "與" + str2 + "不是互為旋轉(zhuǎn)詞");
 }

 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;
  }
 }
}

以上就是本文的全部?jī)?nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來(lái)一定的幫助,同時(shí)也希望多多支持腳本之家!

相關(guān)文章

  • 簡(jiǎn)單實(shí)現(xiàn)java音樂(lè)播放器

    簡(jiǎn)單實(shí)現(xiàn)java音樂(lè)播放器

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)音樂(lè)播放器的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程

    MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程

    這篇文章主要給大家介紹了關(guān)于MybatisPlusInterceptor實(shí)現(xiàn)sql攔截器超詳細(xì)教程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-08-08
  • java中的stream流中的并行查詢java

    java中的stream流中的并行查詢java

    Stream流是Java 8引入的一種新的數(shù)據(jù)處理方式,它提供了一種高效、簡(jiǎn)潔的數(shù)據(jù)處理方式,Stream流可以讓我們以聲明式的方式處理數(shù)據(jù),提高了代碼的可讀性和可維護(hù)性,同時(shí),Stream流支持并行處理,可以充分利用多核CPU的性能,提高程序的運(yùn)行效率
    2024-07-07
  • 在SpringBoot中記錄用戶操作日志功能

    在SpringBoot中記錄用戶操作日志功能

    在Web應(yīng)用程序開(kāi)發(fā)中,記錄用戶操作日志是一項(xiàng)非常重要的任務(wù),它可以幫助我們追蹤用戶行為,分析系統(tǒng)狀況,以及審計(jì)系統(tǒng)的安全性,本文將介紹如何在SpringBoot框架中實(shí)現(xiàn)用戶操作日志的記錄功能,感興趣的朋友一起看看吧
    2024-12-12
  • Java流程控制語(yǔ)句最全匯總(上篇)

    Java流程控制語(yǔ)句最全匯總(上篇)

    這篇文章主要介紹了Java流程控制語(yǔ)句最全匯總(上篇),本文章內(nèi)容詳細(xì),通過(guò)案例可以更好的理解數(shù)組的相關(guān)知識(shí),本模塊分為了三部分,本次為上篇,需要的朋友可以參考下
    2023-01-01
  • Springboot的maven間接依賴的實(shí)現(xiàn)

    Springboot的maven間接依賴的實(shí)現(xiàn)

    這篇文章主要介紹了Springboot的maven間接依賴的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Java Calendar類使用案例詳解

    Java Calendar類使用案例詳解

    這篇文章主要介紹了Java Calendar類使用案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • Spring Boot項(xiàng)目中定制攔截器的方法詳解

    Spring Boot項(xiàng)目中定制攔截器的方法詳解

    這篇文章主要介紹了Spring Boot項(xiàng)目中定制攔截器的方法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 打開(kāi)IDEA配置Spring項(xiàng)目時(shí)發(fā)現(xiàn)沒(méi)有選擇java?1.8的選項(xiàng)解決方案

    打開(kāi)IDEA配置Spring項(xiàng)目時(shí)發(fā)現(xiàn)沒(méi)有選擇java?1.8的選項(xiàng)解決方案

    這篇文章主要介紹了打開(kāi)IDEA配置Spring項(xiàng)目時(shí)發(fā)現(xiàn)沒(méi)有選擇java?1.8的選項(xiàng)的解決方案,文中通過(guò)代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者idea具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2025-03-03
  • Java中redisTemplate注入失敗NullPointerException異常問(wèn)題解決

    Java中redisTemplate注入失敗NullPointerException異常問(wèn)題解決

    這篇文章主要介紹了Java中redisTemplate注入失敗NullPointerException異常問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-08-08

最新評(píng)論

永康市| 临夏市| 克拉玛依市| 开鲁县| 剑川县| 麻阳| 济源市| 灵宝市| 吉安市| 兴安县| 阆中市| 安顺市| 壶关县| 麻栗坡县| 三江| 六枝特区| 华容县| 青龙| 西和县| 饶河县| 长宁区| 惠东县| 承德市| 从化市| 克山县| 托里县| 临洮县| 邮箱| 东兰县| 沈丘县| 高安市| 杭锦后旗| 额敏县| 噶尔县| 永城市| 二连浩特市| 辛集市| 灵山县| 丹江口市| 磴口县| 凤翔县|