链接:https://www.nowcoder.com/questionTerminal/6d5e036defdf408681376a4a9d4930ff
来源:牛客网
通过键盘输入一串小写字母(a~z)组成的字符串。
请编写一个字符串归一化程序,统计字符串中相同字符出现的次数,并按字典序输出字符及其出现次数。
例如字符串"babcc"归一化后为"a1b2c2"
输入描述:
每个测试用例每行为一个字符串,以'\n'结尾,例如cccddecca
输出描述:
输出压缩后的字符串ac5d2e
示例1
输入
dabcab
输出
a2b2c1d1
题目分析:照例先diss牛客,出题和举例完全不一样,要不是进入练习模式根本就不知道这出错在哪里了好吧!后面的例子输出应该为:a2b2cd,而不是a2b2c1d1。
首先我们把输入的字母,都在一个26大小的数组里面去统计个数,第0位的数字就是a有多少,第1位就是b有多少~~~
接下来,遍历就好了,为0的不输出,为1的输出字母,大于1的输出字母和数字。
import java.util.*;
public class Main {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String str = sc.nextLine();
int [] array=new int [26];
for (int i = 0; i < str.length(); i++)
array[str.charAt(i)-'a']++;
for (int i = 0; i < 26; i++)
{
if(array[i]>=1)
System.out.print((char)('a'+i));
if(array[i]>1)
System.out.print(array[i]);
}
}
}