“给定一个字符串,找出这个字符串中出现最多的字符和次数”,笔试碰到的一个问题,还是比较简单的,贴出来与大家分享。
public class CharCount { public static void Charcount(String string) { if (string == null) return; int[] count = new int[string.length()]; for (int i = 0; i < count.length; i++) { // 将字符串中索引字符存在临时变量中 char mid = string.charAt(i); for (int j = 0; j < count.length; j++) { if (mid == string.charAt(j)) count[i]++; } } // 得到次数最多的字符 int index = 0; int max = count[0]; for (int i = 0; i < count.length; i++) { if (max < count[i]) { max = count[i]; index = i; } } System.out.println(); System.out.println("字符=" + string.charAt(index)); System.out.println("次数=" + count[index]); } public static void main(String[] args) { Charcount("ABAACGDHGSTHJHH"); } }
上面的这算法当中有两个for 的嵌套循环 还有一个 for 循环的得到次数最多字符的操作。时间复杂度也不难得到是O(n^2).
如果遇到数据量比较大的,上述这个算法还是有点不尽人意。
如果在给定字符串的时候,就将字符串中出现的字符都保存起来,这里所说的字符是只要出现一次,不管出现几次值保存一次,然后按照这个保存起来的表,对字符串来 for 的嵌套循环,应该会节约时间,遇到出现的字符不多,但字符串很长的时候,能够节省大把的时间。
import java.util.ArrayList; public class CharCount { public static void Charcount(String string) { //ArrayList 保存字符串中出现的字符 ArrayList list=new ArrayList(string.length()); for(int i=0;i<string.length();i++){ //只要表中不包含,将它添加到表中 if(!list.contains(string.charAt(i))){ list.add(string.charAt(i)); } } int[] count = new int[list.size()]; //这里外循环就不用遍历整个字符串,仅仅按照List表中所保存的字符进行遍历 for(int i=0;i<list.size();i++){ char mid=(Character) list.get(i); for(int j=0;j<string.length();j++){ if(mid==string.charAt(j)){ count[i]++; } } } int index = 0; int max = count[0]; for (int i = 0; i < count.length; i++) { if (max < count[i]) { max = count[i]; index = i; } } System.out.println("字符串中出现的字符:"); for(int k=0;k<list.size();k++) { System.out.print(list.get(k)+" "); } System.out.println(); System.out.println("字符" + list.get(index)+"出现的次数最多"); System.out.println("共出现次数为: " + count[index]); } public static void main(String[] args) { Charcount("ABAACGDHGSTHJHH"); } }
相关推荐
公元1年1月1日为星期一给定字符串,找出出现次数最多的字符,并且计算次数。给定字符串,找出出现次数最多的字符,并且计算次数。编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的...
数据结构书上的KMP算法,书上的算法看的不太明白,自己写了一个,有点罗嗦。 也是自己写的,容易看懂
给定两个字符串,求串a中的每个字符是否可以在串b中找到对应的字符,串b中的每个字符只可以使用一次,但是字符可以重复出现。 2017年4月14日 349 求两个数组的交集,不允许出现重复的数字。 404 求左子树节点之和。 ...
如何找到给定字符串的第一个非重复字符? 如何计算字符串中给定字符的出现次数? 如何检查两个字符串是否为 Anagram? 在一个数组中存储了 1-100 个数字,缺少一个数字如何找到? 在一个数组中 1-100 多个数字是重复...
给定一个字符串,找出其中出现次数最多的字符,并输出其出现次数。 1:字符串由字母、数字以及特殊字符组成,其中字母区分大小写。 2:如果出现次数最多的字符有多个,则输出其中任意一个即可。 3:考虑字符串为空的...
40024 找出各位数字的立方和等于它本身的数 36 40025 找完数(改错题error04_2) 38 40027 从高位开始逐位输出一个整数的各位数字(选作) 39 40052 判断素数 40 40053 逆序输出整数 41 40054 输出斐波那契序列 42 第7...
给定一段文本,在该文本中查找并定位任意给定字符串。 要求: (1)实现BF算法; (2) 实现BF算法的改进算法:KMP算法 2.采用分治法求解最大连续子序列和问题 给定一个有n(n≥1)个整数的序列,要求求出其中...
@DbLookup 1 给定一个值,在一个指定的视图(或文件夹)里查找,找出视图里的第一个排序列里包含该值的所有文档。对每个选中的文档,@DbLookup 返回视图里指定列的内容,或者返回一个指定域的内容 2 使用 ODBC.INI ...
计算字符串中出现“绿色”的次数计算字符串中出现“琥珀”的次数计算字符串中出现“红色”的次数每个这些值都将输出到字符串中,其类别在前它和一个“:”分隔。 然后每个将由新的换行符'\ n'替换。 任何空字符串都...
找出字符串或对象是否具有唯一值。 挑战 7 :star: :star: 检查所有相加的数字是否等于数组中的最大数字 挑战8 :star: :star: 动态过滤数组的唯一值 挑战 9 :star: 找到重复字母最多的第一个单词 挑战 10 :star: 查找...
计算字符串中字符的出现次数 从字符串中删除特定字符 你如何在整数数组中找到第二大数字? 给定两个数组,1,2,3,4,5 和 2,3,1,0,5 找出第二个数组中不存在的数字。 查找给定数字的索引 如何从数组中删除重复元素? ...
3. 请用户输入一个字符串,计算字符串中的字符个数,并输出。 4. 用方法来实现:计算两个数的最大值。思考:方法的参数?返回值?扩展(*):计算任意多个数间的最大值(提示:使用可变参数,params)。 5. 用方法来...
并且你想找出第一个坏的,这会导致后面所有的都是坏的。 您将获得一个 API bool isBadVersion(version),它将返回版本是否错误。 实现一个函数来查找第一个坏版本。 您应该尽量减少对 API 的调用次数。 示例:给定 n...
Python–HackerRank习题1,给定列表,找出第二大的数2,打印成绩倒数第二的同学名字3,使用zip(*[iter(s)]*5)按照指定长度5,截取字符串4,计数类collections.Counter5,统计字符串中字母出现次数 并按频次排序6,将...
涵盖:数组、链表、栈、堆、二叉树、BST树等数据结构,算法有搜索、排序、去重、找出现次数最多等问题。 使用Java8来实现 2. 两数相加 迭代法 因为从链表往下个节点变换时,依次是个位、十位、百位 从链表头向下依次...
Step3:找出每个⼩⽂中出现频率最⼤的IP(可以采⽤hash_map进⾏频率统计,然后再找出频率最⼤的⼏个)及相应的频率; Step4:在这1000个最⼤的IP中,找出那个频率最⼤的IP,即为所求。 草图如下:
找到给定字符串(由小写字符组成)中的最长子串 T , 要求 T 中的每一字符出现次数都不少于 k 。输出 T 的长度。 输入: s = "aaabb", k = 3 输出: 3 最长子串为 "aaa" ,其中 'a' 重复了 3 次。 输入: s = "ababbc",...
找出给定序列中不出现的最小正整数。 - 计算道路上过往车辆的数量。 - 从一系列 DNA 序列中找出最小的核苷酸。 - 找到包含至少两个元素的任何切片的最小平均值。 - 计算范围 [a..b] 内可被 k 整除的整数数。 - 为...
找出出现奇数次的次数 136.单号 9.最大和连续子阵列 53. 最大子阵列 10. 找到缺失的数字(给定一个 n-1 个整数的列表,这些整数在 1 到 n 的范围内。列表中没有重复项) 268.漏号 11. 编写代码来确定两棵树是否相同 ...