疫情期间手机直线:18622734798
当前位置:首页网站设计:进阶篇 → 全部信息
Java实现ACM面试题
更新时间:2012/6/26 点击:2623次
时间限制: 1000ms 内存限制: 32768kB 描述:给定一个只包含A-Z的字符串。按以下规则编码: 1.每个包含k个相同字符的子串编码为kX,X为子串中的唯一字符。 2.如果子串的长度为1,则1被省略。 输入:输入的第一行是一个整数N(1=N=100),表示有N组数据,接下来
时间限制: 1000ms 内存限制: 32768kB
描述:给定一个只包含A-Z的字符串。按以下规则编码:
1.每个包含k个相同字符的子串编码为kX,X为子串中的唯一字符。
2.如果子串的长度为1,则1被省略。

输入:输入的第一行是一个整数N(1<=N<=100),表示有N组数据,接下来的N行是N个字符串,字符串只包含'A'-'Z',字符串长度小于10000.
输出:对于每组实例数据,在一行中输出编码后的字符串

样例输入:
3
ABC
ABBCCC
ABCBB
样例输出:
ABC
A2B3C
ABC2B

以下是JAVA代码 经过ACM检查通过:
  1. package com.cxybl; 
  2.  
  3. import java.util.Scanner; 
  4. public class BianMa { 
  5.  
  6. public static void main(String args[]){ 
  7. Scanner sc=new Scanner(System.in); 
  8. int N=sc.nextInt()+1
  9. for(int i=0;i<N;i++){ 
  10. String s=sc.nextLine(); 
  11. char b[]=s.toCharArray(); 
  12. int pos=0
  13. for(int j=1;j<b.length;j++){ 
  14. if(b[j]!=b[j-1]){ 
  15. if(j-pos==1){ 
  16. System.out.printf("%s",b[j-1]); 
  17. }else
  18. System.out.printf("%d%s",j-pos,b[j-1]); 
  19. pos=j; 
  20. if(j==b.length-1){ 
  21. if(j-pos==0){ 
  22. System.out.printf("%s",b[j]); 
  23. }else
  24. System.out.printf("%d%s",j-pos+1,b[j]); 
  25. System.out.println(); 
  26. System.out.println(); 
  27.  
  28. sc.close(); 
  29. }  
  • 疫情期间手机直线:18622734798    服务邮箱:service@nfree.cn     QQ:1448132697
  • 地址:天津市河西区围堤道146号华盛广场B座22楼    

    津公网安备 12010302001042号

  • CopyRight 2006~2024 All Rights Reserved 天津市华易动力信息科技有限公司