zoukankan      html  css  js  c++  java
  • 计算重复字符串长度

    请从字符串中找出至少重复一次的子字符串的最大长度

    输入描述:

    字符串,长度不超过1000
    
    

    输出描述:

    重复子串的长度,不存在输出0

    示例1

    输入

    ababcdabcefsgg

    输出

    3

    说明

    abc为重复的最大子串,长度为3
    #include <iostream>
    #include <string>
     
    using namespace std;
     
    int statLen(string str, int i, int j) {
      int cur_len = 0;
      while (i < str.size() && j < str.size() && str[i] == str[j]) {// 判断子串
        i++;
        j++;
        cur_len++;
      }
      return cur_len;
    }
    int naiveLRS(string str) {
      int maxlen = 0;
      // 遍历所有字符串
      for (int i = 0; i != str.size(); ++i) {
        int len = 0;
        for (int j = i + 1; j != str.size(); j++) {
          len = statLen(str, i, j);// 获取子串长度
          if (maxlen < len) { // 记录最大长度
            maxlen = len;
          }
        }
      }
      return maxlen;
    }
    int main() {
      string str;
      cin >> str;
      printf("%d", naiveLRS(str));
    }
    
    import java.util.*
    public class Main{
        private static int statLen(String X,int k,int j){
            int cur_len = 0;
            while(k < X.length()&&j<X.length()&&X.charAt(k) == X.charAt(j)){
                k++;
                j++;
                cur_len++;
            }
            return cur_len;
        }
    
        public static int nativeLRS(String x){
            int maxlen = 0;
            int length = x.length();
            for(int i = 0; i < length; i++){
                int len = 0;
                int k = i;
                for(int j = i+1;j<length;j++){
                    len = staLen(x,k,j);
                    if(maxlen < len)
                        maxlen = len;
                }   
            }
            return maxlen;
        }
    
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            String X = sc.nextLine();
            System.out,println(nativeLRS(X));
        }
    }
    
  • 相关阅读:
    28完全背包+扩展欧几里得(包子凑数)
    HDU 3527 SPY
    POJ 3615 Cow Hurdles
    POJ 3620 Avoid The Lakes
    POJ 3036 Honeycomb Walk
    HDU 2352 Verdis Quo
    HDU 2368 Alfredo's Pizza Restaurant
    HDU 2700 Parity
    HDU 3763 CDs
    POJ 3279 Fliptile
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602249.html
Copyright © 2011-2022 走看看