vr网站开发高性价比网站建设
2026/1/19 16:59:42 网站建设 项目流程
vr网站开发,高性价比网站建设,wordpress传入视屏黑屏,wordpress dux 邮件(新卷,100分)- 连续字母长度#xff08;Java JS Python#xff09;题目描述给定一个字符串#xff0c;只包含大写字母#xff0c;求在包含同一字母的子串中#xff0c;长度第 k 长的子串的长度#xff0c;相同字母只取最长的那个子串。输入描述第一行有一个子…(新卷,100分)- 连续字母长度Java JS Python题目描述给定一个字符串只包含大写字母求在包含同一字母的子串中长度第 k 长的子串的长度相同字母只取最长的那个子串。输入描述第一行有一个子串(1长度100)只包含大写字母。第二行为 k的值输出描述输出连续出现次数第k多的字母的次数。用例输入AAAAHHHBBCDHHHH3输出2说明同一字母连续出现的最多的是A和H四次第二多的是H3次但是H已经存在4个连续的故不考虑下个最长子串是BB所以最终答案应该输出2。输入AABAAA2输出1说明同一字母连续出现的最多的是A三次第二多的还是A两次但A已经存在最大连续次数三次故不考虑下个最长子串是B所以输出1。输入ABC4输出-1说明只含有3个包含同一字母的子串小于k输出-1输入ABC2输出1说明三个子串长度均为1所以此时k 1k2k3这三种情况均输出1。特此说明避免歧义。题目解析本题第一个用例感觉也有歧义。用例1要求“AAAAHHHBBCDHHHH”中 重复度第3大的子串。其中重复度第1大子串是AAAA和HHHH重复度第2大子串是HHH由于字母H已经有了更大的重复度因此HHH子串不计入比较接下来是实际上的第3大名义上的第2大子串BB而用例1输出的第k3大重复度的子串的长度是2那就肯定是指BB子串。即要求“实际”第k大而不是“名义”第k大但是用例2要求“AABAAA”中重复度第2大的子串。其中重复度第1大子串是AAA重复度第2大子串是AA由于字母A已经有了更大的重复度因此HHH子串不计入比较接下来是实际上的第3大名义上的第2大子串B而用例1输出的第k2大重复度的子串的长度是1这里又是取名义上第k大了或者本题还有另一种思路那就是第k大就是单纯按重复度降序后的第k个。比如用例1 A:4H:4B:2C:1D:1这里第k3大那就是B子串长度为2比如用例2A:3B:1这里第k2大那就是B子串长度为1下面代码就是按照这个思路实现的。增加处理下 k 0的情况此时直接返回-1Java算法源码import java.util.Arrays; import java.util.HashMap; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc new Scanner(System.in); String s sc.next(); int k sc.nextInt(); System.out.println(getResult(s, k)); } public static int getResult(String s, int k) { if (k 0) return -1; s 0; HashMapCharacter, Integer count new HashMap(); char b s.charAt(0); int len 1; for (int i 1; i s.length(); i) { char c s.charAt(i); if (b c) { len; } else { if (!count.containsKey(b) || count.get(b) len) { count.put(b, len); } len 1; b c; } } Integer[] arr count.values().toArray(new Integer[0]); if (k arr.length) return -1; else { Arrays.sort(arr, (x, y) - y - x); return arr[k - 1]; } } }JS算法源码/* JavaScript Node ACM模式 控制台输入获取 */ const { count } require(console); const readline require(readline); const rl readline.createInterface({ input: process.stdin, output: process.stdout, }); const lines []; rl.on(line, (line) { lines.push(line); if (lines.length 2) { console.log(getResult(lines[0], lines[1])); lines.length 0; } }); /* 算法逻辑 */ function getResult(s, k) { if (k 0) return -1; s 0; let count {}; let b s[0]; let len 1; for (let i 1; i s.length; i) { const c s[i]; if (b c) { len; } else { if (count[b] undefined || count[b] len) { count[b] len; } len 1; b c; } } const arr Object.values(count); if (k arr.length) { return -1; } else { arr.sort((a, b) b - a); return arr[k - 1]; } }Python算法源码# 输入获取 s input() k int(input()) # 算法入口 def getResult(): global s global k if k 0: return -1 s 0 count {} b s[0] long 1 for i in range(1, len(s)): c s[i] if b c: long 1 else: if count.get(b) is None or count[b] long: count[b] long long 1 b c arr list(count.values()) if k len(arr): return -1 else: arr.sort(reverseTrue) return arr[k - 1] # 算法调用 print(getResult())

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询