首页 > 编程语言 >3182-2020-3-3-java

3182-2020-3-3-java

时间:2022-11-08 22:02:12浏览次数:42  
标签:字符 java tokenizer int 2020 StringTokenizer 3182 new

找首位相同的最短字串

看作是找收尾相同的最短子串
这怕不是一个二维dp吧
设dp[i][j]表示以i字符开始,j字符结束的最长子串长度

最直接的,对于字符串中的每一个字符向后遍历一次,遇到的第一个相同的就是最短的

但我总感觉应该用动态规划来做

import java.io.*;
import java.util.StringTokenizer;

class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tokenizer = new StringTokenizer(reader.readLine());

        String str = tokenizer.nextToken();
        char[] chars = str.toCharArray();

        int startIndex=-1,length=chars.length+1;

        for(int i = 0;i<chars.length-1;i++){
            for(int j =i+1;j< chars.length;j++){
                if(chars[i]==chars[j]&&j-i<length){
                    startIndex=i;
                    length=j-i;
                    break;
                }
            }
        }

        if(startIndex>=0) for(int i=startIndex;i<=startIndex+length;i++) System.out.print(chars[i]);
    }
}

标签:字符,java,tokenizer,int,2020,StringTokenizer,3182,new
From: https://www.cnblogs.com/yaocy/p/16871366.html

相关文章

  • Java——数据类型转换:自动类型转换&强制类型转换
                             ==================================================================================......
  • JavaScript基础语法
     HTML:标记语言JavaScript:编程语言JavaScript发展历史(JS)1.1994年,网景公司(Netscape)发布了Navigator浏览器0.9版,这是世界上第一款比较成熟的网络浏览器,轰动一......
  • Java静态变量和实例变量的区别以及使用方法
    带static的属性采用类名.属性调用代码示例:packagecom.powernode.oo;publicclassCat{/***静态方法*/publicstaticvoidm(){Sy......
  • JavaScript实现滚动条滚动给div加颜色
    实现原理当滚动的距离大于某一个元素到页面顶部的距离时候,给元素设置实现步骤1.获取某一个元素到页面顶部的距离2.如果距离大于零则给div加上颜色,如果等于0,即归位的时......
  • java PriorityQueue
    PriorityQueue的底层实现是堆,  默认为最小堆:PriorityQueue<Integer>q= new PriorityQueue<>();最大堆初始化:PriorityQueue<Integer>q= newPriorityQueue<>(......
  • 如何实现JavaSrcipt页面的跳转
    所谓的JavaSrcipt页面跳转就是利用JavaSrcipt对打开的页面ULR进行跳转,如我们打开的是A页面,通过JavaSrcipt脚本就会跳转到B页面。一、常规的JS页面跳转代码1、在原来的窗体中......
  • JavaScript中foreach()用法及使用的坑
    JavaScript中foreach是用于遍历数组的方法,将遍历到的元素传递给回调函数,遍历的数组不能是空的要有值。foreach语法:[].forEach(function(value,index,array){//codeso......
  • Linux 中使用脚本启动 Java 服务
    Linux中使用脚本启动Java服务#!/bin/sh#服务启动参数#JAVA_OPTS="-Xms512m-Xmx512m-XX:MetaspaceSize=512m-XX:MaxMetaspaceSize=1024m-XX:ParallelGCThreads=......
  • Java中的异常和处理
    Java中的异常和处理详解简介程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常。异常发生时,是任程序自生自灭,立刻退出终止,还是输出错误给用......
  • Java标识符
    Java标识符关键字标识符注意点标识符由字母、数字、下划线“_”、汉字、美元符号“$”组成,第一个字符不能是数字。不能把Java关键字和保留字作为标识符。标......