国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

藍橋杯-算法訓練-字串統計-Java

2019-11-14 08:50:37
字體:
來源:轉載
供稿:網友

藍橋杯-算法訓練-字串統計-java

問題描述

  給定一個長度為n的字符串S,還有一個數字L,統計長度大于等于L的出現次數最多的子串(不同的出現可以相交),如果有多個,輸出最長的,如果仍然有多個,輸出第一次出現最早的。

輸入格式

  第一行一個數字L。   第二行是字符串S。   L大于0,且不超過S的長度。 

輸出格式

一行,題目要求的字符串。   輸入樣例1:   4   bbaabbaaaaa   輸出樣例1:   bbaa   輸入樣例2:   2   bbaabbaaaaa   輸出樣例2:   aa

數據規模和約定

n<=60 S中所有字符都是小寫英文字母。

提示

枚舉所有可能的子串,統計出現次數,找出符合條件的那個

思考

道題用HashMap來保存枚舉的字串,key值保存字串-value值保存字串所出現的次數;通過for循環并使用subString()方法枚舉所有符合要求的字串maxStr記錄出現次數最多的字串,maxValue記錄其出現的次數

代碼

package com.test;import java.util.HashMap;import java.util.Map;import java.util.Scanner;public class ALGO_87 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in) ; int l = 0; String s = "" ; if(scanner.hasNext()){ //輸入數字l與字符串s l = scanner.nextInt() ; s = scanner.next() ; } Map<String,Integer> map = new HashMap<String,Integer>() ; //使用map中key保存字符串 value保存字符串出現的次數 int maxValue = 0 ; //保存字符串的出現次數的最大值 String maxStr = "" ; //保存出現次數最多的字符串 for(int i = 0 ; i < s.length() - l + 1 ; i ++){ for(int j = i + l ; j < s.length() ; j ++){ String str = s.substring(i,j) ; //枚舉截取長度大于等于l的字符串 if(map.containsKey(str)){ //若該字符串之前出現過則map(key,value)中value值+1 int value = map.get(str) ; value ++ ; if(value > maxValue){ maxValue = value ; maxStr = str ; }else if(value == maxValue){ //若該字符串出現的次數與當前出現次數最多的字符串相等,則比較兩個字符串的長度,取字符串長的 if(maxStr.length() < str.length()){ maxStr = str ; } } map.put(str, value) ; }else{ //若該字符串之前并未出現過則添加,并初始化value值為0 map.put(str, 0) ; } } } System.out.PRintln(maxStr); //輸出出現次數最多的字符串 }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 阳曲县| 双城市| 郎溪县| 清河县| 全南县| 香港 | 清丰县| 连山| 木兰县| 苏尼特右旗| 漯河市| 博罗县| 蓬溪县| 和政县| 锡林浩特市| 宣汉县| 玛纳斯县| 临潭县| 芒康县| 蒙自县| 武城县| 手游| 彭州市| 思南县| 孟津县| 金溪县| 曲麻莱县| 巴林左旗| 柘城县| 孝昌县| 博客| 崇信县| 米易县| 会泽县| 菏泽市| 霸州市| 湘阴县| 托里县| 东台市| 大邑县| 汝阳县|