当前位置: 首页 > news >正文

上海网站建设公司站霸网络淘宝指数查询工具

上海网站建设公司站霸网络,淘宝指数查询工具,飞虹网架建设官方网站,莱芜人才网目录 专栏导读一、题目描述二、输入描述三、输出描述1、输入2、输出3、说明4、再输入5、输出6、说明 四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中,刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08…

在这里插入图片描述

目录

    • 专栏导读
    • 一、题目描述
    • 二、输入描述
    • 三、输出描述
      • 1、输入
      • 2、输出
      • 3、说明
      • 4、再输入
      • 5、输出
      • 6、说明
    • 四、解题思路
    • 五、Java算法源码
    • 六、效果展示
      • 1、输入
      • 2、输出
      • 3、说明

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

专栏导读

本专栏收录于《华为OD机试(JAVA)真题(A卷+B卷)》。

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

一、题目描述

给定一个字符串,只包含大写字母,求在包含同一字母的子串中,长度第 k 长的子串的长度,相同字母只取最长的那个子串。

二、输入描述

第一行有一个子串(1<长度<=100),只包含大写字母。

第二行为 k的值

三、输出描述

输出连续出现次数第k多的字母的次数。

例如:

1、输入

AAAAHHHBBCDHHHH
3

2、输出

2

3、说明

  • 同一字母连续出现的最多的是A和H,四次;
  • 第二多的是H,3次,但是H已经存在4个连续的,故不考虑;
  • 下个最长子串是BB,所以最终答案应该输出2

4、再输入

AABAAA
2

5、输出

1

6、说明

  • 同一字母连续出现的最多的是A,三次;
  • 第二多的还是A,两次,但A已经存在最大连续次数三次,故不考虑;
  • 下个最长子串是B,所以输出1。

四、解题思路

本题的关键是理解“相同字母只取最长的那个子串”。

  1. 遍历输入字符串,获取每个字母最长的字符串;
  2. 再将其按照字符串长度降序排序;
  3. 获取连续出现次数第k多的字母的个数;

五、Java算法源码

package com.guor.od;import java.util.*;public class OdTest02 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String input = sc.nextLine();int index = Integer.valueOf(sc.nextLine());// 首字母连续字符串String firstSameStr = getSameChar(input);// 记录某字符的最大长度Map<Character, Integer> map = new HashMap<Character, Integer>();map.put(firstSameStr.charAt(0), firstSameStr.length());while (input.substring(firstSameStr.length()).length() > 0) {input = input.substring(firstSameStr.length());firstSameStr = getSameChar(input);// 如果map中没有此字符if (!map.containsKey(firstSameStr.charAt(0))) {map.put(firstSameStr.charAt(0), firstSameStr.length());continue;}// 获取某字符的最大长度if (map.get(firstSameStr.charAt(0)) < firstSameStr.length()) {map.put(firstSameStr.charAt(0), firstSameStr.length());}}// 存储相同字母最常的那个字符串List<String> list = new ArrayList<String>();for(Map.Entry<Character, Integer> entry : map.entrySet()){Character key = entry.getKey();Integer value = entry.getValue();StringBuilder builder = new StringBuilder();for (int i = 0; i < value; i++) {builder.append(key);}list.add(builder.toString());}// 按相同字符长度降序排列list.sort(new Comparator<String>() {@Overridepublic int compare(String o1, String o2) {if (o1.length() > o2.length()) {return -1;}else if (o1.length() < o2.length()) {return 1;}else {return 0;}}});System.out.println(list);// 输出连续出现次数第k多的字母的次数System.out.println(list.get(index - 1).length());}// 获取首字母连续字符串public static String getSameChar(String str) {StringBuilder builder = new StringBuilder();char first = str.charAt(0);builder.append(first);for (int i = 1; i < str.length(); i++) {if(first != str.charAt(i)){break;}builder.append(str.charAt(i));}return builder.toString();}
}

六、效果展示

1、输入

AABBBCCCCCAAAAABB
3

2、输出

3

3、说明

AABBBCCCCCAAAAABB

(1)遍历输入字符串,获取每个字母最长的字符串

AAAAABBBCCCCC

(2)按照其字符串长度排序

AAAAACCCCCBBB

(3)获取第3长的字符的个数

即B的个数3。

在这里插入图片描述


🏆下一篇:华为OD机试真题 Java 实现【简易内存池】【2023 B卷 200分 考生抽中题】

🏆本文收录于,华为OD机试(JAVA)真题(A卷+B卷)

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

在这里插入图片描述

http://www.dinnco.com/news/63139.html

相关文章:

  • wordpress 用什么语言北京谷歌优化
  • 手机端网站开发技术上海aso苹果关键词优化
  • 网站模版制作关键词分布中对seo有危害的
  • 做网站页面多少钱百度一下搜索一下
  • 做网站卖衣服物流包年多少钱天津seo网络
  • 乌鲁木做兼职的网站北京百度推广优化公司
  • 如何上传收费视频网站友情链接的英文
  • 怎样更换动易2006网站模板seo去哪里培训
  • 西安 网站建设 1seo目标关键词优化
  • 织梦网站最新漏洞入侵快速刷排名的软件最好
  • 无锡网站建设818gx今日实时热搜
  • 网站的日常维护上海搜索引擎关键词优化
  • 做货运网站找哪家好大学生网页制作成品模板
  • 和县网站制作站长工具星空传媒
  • 贵州省建设学校网站首页浏览器谷歌手机版下载
  • 上海网站建设百家号搜索引擎营销怎么做
  • 网站后期维护管理在线网站分析工具
  • 如果做国外网站导购建立公司网站需要多少钱
  • 2017做哪些网站致富推广的渠道和方法有哪些
  • 自己搭建服务器做视频网站营销案例
  • 做网站服务器硬盘多大举出最新的网络营销的案例
  • 软件开发公司介绍怎么写青岛百度seo代理
  • 易语言怎么做视频网站郑州seo技术顾问
  • 佛山做公司网站人力资源短期培训班
  • 做网站后台要学免费刷推广链接的软件
  • 辽宁网站开发技能培训
  • 做一个网站后期维护需要做什么国际新闻最新消息今天
  • 网页开发外包铁岭网站seo
  • 网站开发基本要求百度广告代理
  • 在织梦网站做静态网页seo案例分析及解析