package com.tarena.test.B20;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
/**
* 连续字母长度
* @author Administrator
* 输入:AAAAHHHBBCDHHHH
* 3
* 输出 2
*
* 输入: AABAAA
* 2
* 输出 1
*
*
* 输入 ABC
* 4
* 输出 -1
*
* 输入 ABC
* 2
* 输出 1
*/
public class B29 {
public static void main(String[] args) {
try(Scanner sc = new Scanner(System.in)){
String str = sc.nextLine();
int k = Integer.parseInt( sc.nextLine());
System.out.println(resultStr(k,str));
}
}
public static Integer resultStr(Integer k,String str) {
int len =1;
char bs = str.charAt(0);
Map<Character,Integer> recordMap = new HashMap<>();
char ns ;
for(int i=1;i<str.length();i++) {
ns = str.charAt(i);
if(bs == ns) {
len++;
}else {
if(!recordMap.containsKey(bs)||recordMap.get(bs)<len) {
recordMap.put(bs, len);
}
bs = ns;
len = 1;
}
}
Integer[] arr = recordMap.values().toArray(new Integer[0]);
if(k>arr.length) {
return -1;
}
Arrays.sort(arr,(a1,a2)->(a2-a1));
return arr[k-1];
}
}
了解知识点
1、Arrays.sort(); 默认是从小到大,这里的需求是从大到小,需要自己写比较方法
2、