金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出。

此题的解题思路如下:
引入TreeSet:通过集合快速找到所有出现过的字符串
引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串
通过String的indexOf方法和lastIndexOf方法来计算每个字符串出现的次数最大值
使用HashMap存储出现多的字符串和次数
代码如下:
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeSet;
public class SortTest {
public static void main(String[] args) {
String input = "httpblogcsdnnetouyangpeng";
new SortTest().doString(input);
}
public void doString(String input) {
/**
* 第一步:
* 使用TreeSet快速找到所有出现的字符串
* 将输入的字符串按升序排列
*/
//将String转换为字符数组
char[] chars=input.toCharArray();
ArrayList<String> lists=new ArrayList<String>();
//TreeSet是一个有序集合,TreeSet中的元素将按照升序排列
//通过TreeSet的不重复性,快速找到所有出现的字符串
TreeSet<String> set=new TreeSet<String>();
for (int i = 0; i < chars.length; i++) {
lists.add(String.valueOf(chars[i]));
set.add(String.valueOf(chars[i]));
}
//set= [a, b, c, d, e, g, h, l, n, o, p, s, t, u, y]
System.out.println("set= "+set);
//排序
Collections.sort(lists);
//lists= [a, b, c, d, e, e, g, g, g, h, l, n, n, n, n, o, o, p, p, s, t, t, t, u, y]
System.out.println("lists= "+lists);
//将排序好的字符数组转换为StringBuffer
StringBuffer sb=new StringBuffer();
for (int i = 0; i < lists.size(); i++) {
sb.append(lists.get(i));
}
input=sb.toString();
//input= abcdeeggghlnnnnooppstttuy
System.out.println("input= "+input);
/**
* 第二步: 找出出现相同的字符并记录出现多少次
*/
//最多重复出现多少次
int max=0;
//重复出现的字符
String maxString="";
/*//重复出现的字符列表
ArrayList<String> maxList=new ArrayList<String>();*/
//用来保存出现最多的字符串和次数
HashMap<String, Integer> hm=new HashMap<String, Integer>();
//将出现过的字符遍历
Iterator<String> its=set.iterator();
while (its.hasNext()) {
String os=its.next();
//字符出现在排序后input中的第一次位置
int begin=input.indexOf(os);
//字符出现在排序后input中的最后一次位置
int end=input.lastIndexOf(os);
//字符出现的次数
int value=end-begin+1;
if (value>=max) {
max=value;
maxString=os;
hm.put(maxString, max);
}
}
for (Map.Entry<String, Integer> enties: hm.entrySet()) {
if (enties.getValue()==max) {
System.out.print("重复最多的字母是:"+enties.getKey());
System.out.println("重复最多的次数是:"+enties.getValue());
}
}
}
}
运行结果如下:
set= [a, b, c, d, e, g, h, l, n, o, p, s, t, u, y] lists= [a, b, c, d, e, e, g, g, g, h, l, n, n, n, n, o, o, p, p, s, t, t, t, u, y] input= abcdeeggghlnnnnooppstttuy
重复最多的字母是:n重复最多的次数是:4
当有字符串重复的次数相同时,也可以将它们都打印出来。
如
public static void main(String[] args) {
String input = "abbcccddddeeeeeffffffaaaaabbb";
new SortTest().doString(input);
}
运行结果如下:
set= [a, b, c, d, e, f] lists= [a, a, a, a, a, a, b, b, b, b, b, c, c, c, d, d, d, d, e, e, e, e, e, f, f, f, f, f, f] input= aaaaaabbbbbcccddddeeeeeffffff 重复最多的字母是:f重复最多的次数是:6 重复最多的字母是:a重复最多的次数是:6
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Java出现次数最多字符串
# Java统计字符串出现次数
# java字符串出现的次数
# js查找字符串出现次数
# Java案例使用集合方法实现统计任意字符串中字符出现的次数
# Java实现统计字符串出现的次数
# Java统计一个字符串在另外一个字符串出现次数的方法
# Java统计字符串中字符出现次数的方法示例
# Java获取指定字符串出现次数的方法
# java统计字符串中重复字符出现次数的方法
# java统计字符串中指定元素出现次数方法
# java求数组元素重复次数和java字符串比较大小示例
# java字符串比较获取字符串出现次数的示例
# JAVA统计字符串中某个字符出现次数的方法实现
# 最多
# 升序
# 多个
# 如有
# 出现在
# 求出
# 转换为
# 是一个
# 金山公司
# 遍历
# 方法来
# 第二步
# 大家多多
# 不重
# 打印出来
# 面试题
# 次数最多
# Map
# Iterator
# java
相关文章:
微信小程序 五星评分(包括半颗星评分)实例代码
C#如何使用XPathNavigator高效查询XML
大连 网站制作,大连天途有线官网?
韩国代理服务器如何选?解析IP设置技巧与跨境访问优化指南
南平网站制作公司,2025年南平市事业单位报名时间?
如何通过免费商城建站系统源码自定义网站主题与功能?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?
企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
已有域名和空间如何搭建网站?
如何在Tomcat中配置并部署网站项目?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
如何用VPS主机快速搭建个人网站?
寿县云建站:智能SEO优化与多行业模板快速上线指南
如何快速重置建站主机并恢复默认配置?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
广州网站建站公司选择指南:建站流程与SEO优化关键词解析
深圳网站制作培训,深圳哪些招聘网站比较好?
如何快速打造个性化非模板自助建站?
如何在VPS电脑上快速搭建网站?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
如何在阿里云购买域名并搭建网站?
如何获取上海专业网站定制建站电话?
金*站制作公司有哪些,金华教育集团官网?
香港服务器租用每月最低只需15元?
建站之星后台密码遗忘如何找回?
建站之星导航如何优化提升用户体验?
实现虚拟支付需哪些建站技术支撑?
学校建站服务器如何选型才能满足性能需求?
小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
高性能网站服务器配置指南:安全稳定与高效建站核心方案
阿里云网站制作公司,阿里云快速搭建网站好用吗?
c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗
建站之星如何取消后台验证码生成?
广州建站公司哪家好?十大优质服务商推荐
定制建站价位费用解析与套餐推荐全攻略
Python lxml的etree和ElementTree有什么区别
建站主机选择指南:服务器配置与SEO优化实战技巧
子杰智能建站系统|零代码开发与AI生成SEO优化指南
山东云建站价格为何差异显著?
高防服务器租用指南:配置选择与快速部署攻略
制作网站哪家好,cc、.co、.cm哪个域名更适合做网站?
如何选择PHP开源工具快速搭建网站?
网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
济南网站建设制作公司,室内设计网站一般都有哪些功能?
*请认真填写需求信息,我们会在24小时内与您取得联系。