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

首頁 > 編程 > Java > 正文

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

2019-11-11 06:49:55
字體:
來源:轉載
供稿:網友

藍橋杯-算法訓練-字串統計-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); //輸出出現次數最多的字符串 }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 花垣县| 苏尼特左旗| 通辽市| 佳木斯市| 永修县| 苍溪县| 慈利县| 哈尔滨市| 那曲县| 毕节市| 大连市| 灵寿县| 新巴尔虎左旗| 城固县| 临西县| 读书| 凤冈县| 神农架林区| 罗甸县| 铅山县| 观塘区| 雅安市| 朝阳区| 怀柔区| 周口市| 汝南县| 济源市| 酒泉市| 福清市| 威海市| 雅安市| 白玉县| 田阳县| 洱源县| 镇雄县| 阿克| 巧家县| 镇宁| 来安县| 都匀市| 黄陵县|