import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 对字符集中字符出现的次数进行排序。
*
* @author 赵学庆 www.java2000.net
*/
public class T {
public static void main(String args[]) {
String str = "12345678hfdjkslahfkj932189oiefsjkar94werfdsf";
Map<Character, KeyValue> map = new HashMap<Character, KeyValue>();
char c;
KeyValue kv = null;
for (int i = 0; i < str.length(); i++) {
c = str.charAt(i);
kv = map.get(c);
if (kv == null) {
kv = new KeyValue();
kv.ch = c;
kv.count = 1;
map.put(c, kv);
} else {
kv.count++;
}
}
List<KeyValue> list = new ArrayList<KeyValue>(map.values());
Collections.sort(list);
for (KeyValue o : list) {
System.out.println(o.ch + "=" + o.count);
}
}
}
class KeyValue implements Comparable {
public int compareTo(Object obj) {
if (obj instanceof KeyValue) {
KeyValue kv = (KeyValue) obj;
return kv.count - this.count;
}
return -1;
}
char ch;
int count;
}
-----------------------------------------------------------------------------------------------------------
public class TestCount
{
/**
* @param args
*/
public static void main(String[] args)
{
String str = "12455547464515475354635";
int[] x = new int[10];
char[] ca = str.toCharArray();
for (int i = 0; i < ca.length; i++)
{
x[ca[i] - '0']++;
}
for (int i = 0; i < x.length; i++)
{
System.out.println("字符" + (char) ('0' + i) + "出现了" + x[i] + "次");
}
}
}
--------------------------------------------------------------------------------------
public static void main(String[] args)
{
int[] data = { 3, 3, 5, 1, 3, 5, 3, 5, 5, 8 };
Map<Integer, Integer> m = new HashMap<Integer, Integer>();
for (int i = 0; i < data.length; i++)
{
if (m.get(data[i]) == null) {
m.put(data[i], 1);
} else {
m.put(data[i], m.get(data[i]) + 1);
}
}
System.out.println("Map里的元素: " + m);
int t = 0;
Set<Map.Entry<Integer, Integer>> set = m.entrySet();
for (Entry<Integer, Integer> entry : set) {
if (entry.getValue() > t) {
t = entry.getValue();
}
}
System.out.println("次数最多的有:");
for (Entry<Integer, Integer> entry : set) {
if (entry.getValue() == t) {
System.out.println(entry.getKey());
}
}
}
}
---------------------------------------------------------------------------------
public static void main(String[] args)
{
String str = "12455547464515475354635";
String out = "";
char[] ca = str.toCharArray();
Arrays.sort(ca);
for (char c : ca)
{
out += c;
}
Matcher m = Pattern.compile("(\\d)\\1*").matcher(out);
while (m.find())
System.out.println(m.group().charAt(0) + "的个数:"
+ m.group().length());
}
----------------------------------------------------------------------
import javax.swing.*;
public class To {
private static String s = JOptionPane.showInputDialog("Enter a Integer number: ");
public static char getCh(String s) {
int max = 0;
char ch=' ';
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int ntimes = s.length() - s.replaceAll(Character.toString(c), "").length();
if (ntimes > max) {
max = ntimes;
ch = c;
}
}
return ch;
}
public static void main(String[] args){
System.out.println("The number is : "+getCh(s));
}
}
---------------------------------------------------------------------------
import javax.swing.*;
public class To {
private static String s = JOptionPane.showInputDialog("Enter a Integer number: ");
public static char getCh(String s) {
int max = 0;
char ch=' ';
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
int ntimes = s.length() - s.replaceAll(Character.toString(c), "").length();
if (ntimes > max) {
max = ntimes;
ch = c;
}
}
return ch;
}
public static void main(String[] args){
System.out.println("The number is : "+getCh(s));
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lz12366/archive/2009/10/05/4633275.aspx
分享到:
相关推荐
具体来说,我们需要编写一个程序,其输入为两个正整数 \( a \) 和 \( b \),输出为在 \( a \) 和 \( b \) 之间约数个数最多的那个数的约数个数 \( div(x) \)。 ### 二、算法设计 #### 2.1 算法思路 解决这个问题...
输入包含多组测试数据,每组数据的第一行给出两个正整数 \( n \) 和 \( L \),分别表示程序的数量和磁带的长度;接下来的一行包含 \( n \) 个正整数,表示每个程序在磁带上占用的长度。 例如: ``` 6 50 2 3 13 8 ...
其中,n 是未知数的个数,a、b、c 是系数矩阵。这种矩阵系统广泛应用于科学计算和工程计算中,例如一维泊松方程(Poisson equation)的离散化、自然立方样条插值(natural cubic spline interpolation)等。 Thomas...
给定一个整数n,求出所有连续的且和为n正整数。比如对于整数27,结果为2~7、8~10、13和14,因为这些数之间的整数的和都是27。注意:并不是所有的整数都有结果,例如不存在连续的整数和为16。为了提高计算的效率,...
例如,在一个整数数组中,我们可能需要找出最大值、最小值,或者是出现次数最多的数字。这类问题通常通过遍历数组并进行适当的计算来解决,对于大规模数据,高效的数据结构和算法选择至关重要。 接着,我们来看...
这个问题可以通过多种方法解决,例如使用哈希表(HashMap在Java中)或者数组来统计每个字符出现的次数,然后找出出现次数最多的那个。接下来我们将详细探讨这两种方法。 1. **哈希表法**: - 初始化一个哈希表,键...
3. **动态规划或前缀和**:如果范围内的数有重复,可以使用动态规划或前缀和的方法记录每个数的约数信息,避免重复计算。 4. **使用筛法**:结合埃拉托斯特尼筛法,可以先筛选出范围内的质数,然后利用这些质数快速...
今天,我们将讨论如何使用 Python 找出一个由非负整数组成的字符串,最多 n(含 n)。 在这个问题中,我们需要编写一个 Python 程序,以创建一个字符串,该字符串由非负整数组成,最多为 n(含 n)。这可以使用 ...
5.15 数据段中已定义了一个有N个字数据的数组M,试编写一程序求出M中绝对值最大的数,把它放在数据段的M+2n单元中,并将该数的偏移地址存放在M+2(n+1)单元中。 5.16 在首地址为DATA的字数组中,存放了100H个16位...
- **找出众数及重数**:再次遍历数组 `a[]`,找到最大值对应的元素(即众数),以及这个最大值(即重数)。 #### 示例代码分析 ```c #include static int a[100000]; // 定义一个大小为100000的数组用于计数 int ...
现在给出若干学生的相关数据,请计算哪些同学获得的奖金总数最高(假设总 有同学能满足获得奖学金的条件)。 Input 输入的第一行是一个整数N(1 <= N ),表示学生的总数。 • 接下来的N行每行是一位学生的数据,从...
输入一个正整数n (1<n),再输入n 个整数,将最小值与第一个数交换,最大值与最后一个数交换,然后输出交换后的n 个数。 (25)抓住肇事者 一辆卡车违反交通规则,撞人后逃跑。现场共有三个目击者,但都没有记住车号...
给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。多重集S中重数最大的元素称为众数。 例如,S={1,2,2,2,3,5}。 多重集S的众数是2,其重数为3。 编程任务: 对于给定的由n 个...
在JavaScript中实现求出一个字符串中最多出现的字符及其个数的功能,主要涉及到以下几个知识点: 首先,我们需要理解如何操作字符串。在JavaScript中,字符串是不可变的数据类型,意味着我们不能直接修改字符串的...
在解决Top N问题时,我们通常会利用Count-Reduce的思想,即统计每个元素的数量,并在Reduce阶段找出出现次数最多的N个元素。 1. **Map阶段**: - 输入:多个包含正整数的文件,每行一个数。 - 输出:键值对(key-...
标题中的笔试题是一个经典的几何问题,探讨了在二维平面上,当有n条直线时,最多可以将平面分割成多少个部分。这个问题涉及到数学、计算机编程以及递归思想。 首先,我们来理解这个问题的基本概念。当一条直线穿过...
在C语言编程中,统计文件中出现最多的前5个字母是一项常见的文本处理任务,它可以用于分析文本数据,比如单词频率统计、字符分析等。在这个问题中,我们需要读取一个文件,然后统计其中出现频率最高的五个字母。下面...
:给定含有n 个元素的多重集合S,每个元素在S 中出现的次数称为该 元素的重数。多重集S 中重数最大的元素成为众数。例如,S={1,2,2,2,3,5}。多 重集S 的众数是2,其重数为3。 算法设计:对于给定的由n 个自然数组成...
当给定一个包含N个不同元素的集合时,全排列就是要列出所有可能的N!(N的阶乘)种排列方式。在这个场景中,我们将探讨如何使用Java语言,通过回溯法来递归实现全排列的输出。 首先,我们需要理解回溯法的基本概念。...
这种方法的原理在于,对于任何2的N次幂,当我们减去1(即`num - 1`)后,将得到一个二进制表示中所有0变为1,所有1变为0的数,除了与原数相同的那个最高位1变为0。当我们将这两个数进行位与运算时,除了那个最高位的...