小编40m*_*ike的帖子

如何查找包含两个唯一重复字符的最长子字符串

任务是找到给定字符串中由任意两个唯一重复字符
Ex 组成的最长子字符串.在输入字符串"aabadefghaabbaagad"中,最长的字符串是"aabbaa"

我想出了以下解决方案,但想看看是否有更有效的方法来做同样的事情

import java.util.*; 

public class SubString {
    public static void main(String[] args) { 
    //String inStr="defghgadaaaaabaababbbbbbd";
    String inStr="aabadefghaabbaagad";
    //String inStr="aaaaaaaaaaaaaaaaaaaa";
    System.out.println("Input string is         "+inStr);

    StringBuilder sb = new StringBuilder(inStr.length());
    String subStr="";
    String interStr="";
    String maxStr="";
    int start=0,length=0, maxStart=0, maxlength=0, temp=0;

    while(start+2<inStr.length())   
    {    int i=0;
         temp=start;
         char x = inStr.charAt(start);
         char y = inStr.charAt(start+1);
         sb.append(x);
         sb.append(y);

         while( (x==y) && (start+2<inStr.length()) )
         {    start++;
              y = inStr.charAt(start+1);
              sb.append(y);
         }

         subStr=inStr.substring(start+2);
         while(i<subStr.length())
         {    if(subStr.charAt(i)==x || subStr.charAt(i)==y )
              {    sb.append(subStr.charAt(i));
                   i++;
              } …
Run Code Online (Sandbox Code Playgroud)

java string-matching

8
推荐指数
1
解决办法
9738
查看次数

标签 统计

java ×1

string-matching ×1