• 编码 (java实现)


    Problem Description

    给你一个由大写字母组成的组成的字符串,你可以用如下规则对其进行编码:
    1、 包含K个相同字母的连续字符串可以用KX表示,其中X是相同的字母。
    2、 如果K为1,不输出K

    Input

     输入有多组,直到文件结束。每组一个字符串,长度为10000以内

    Output

     输出编码后的字符串。

    Sample Input

    ABC
    ABBCCC

    Sample Output

    ABC
    A2B3C

    Hint

     

    Source

    lin
     
     1 import java.util.*;
     2 
     3 public class Main {
     4     public static void main(String[] args) {
     5         Scanner sc = new Scanner(System.in);
     6         while (sc.hasNext()){
     7             String str = sc.next();
     8             int count = 1;  // 创建计数变量,记录字母出现次数
     9             char key = 0;   
    10             for (int i = 1; i < str.length()+1; i++) {  // 因为要照顾到最后一个元素的情况,所以用str.length+1
    11                 if(i < str.length()){  // 若最后一个字母与前面的相同
    12                     key = str.charAt(i-1);  // 固定前一个变量
    13                     char ch = str.charAt(i);  // 创建游动变量,遍历字符串
    14                     if(ch == key) { 
    15                         count++;  // 字幕出现次数加一
    16                         continue;  // 继续判断后面的字母
    17                     }
    18                 }
    19                 else{  // 若最后一个字母与前面的不同
    20                     key = str.charAt(str.length()-1);  // 判定最后一个
    21                 }
    22                 if(count == 1){
    23                     System.out.printf("%c", key);
    24                 }
    25                 else{
    26                     System.out.printf("%d%c", count, key);
    27                     count = 1;
    28                 }
    29             }
    30             System.out.println();
    31         }
    32     }
    33 }
  • 相关阅读:
    [JZOJ3386] 守卫者的挑战
    [JZOJ3385] 黑魔法师之门
    [JZOJ3383] 太鼓达人
    [JZOJ3382] 七夕祭
    NOIP模拟测试on 2019.9.27
    数据结构测试2 on 2019.9.25
    数据结构测试1 on 2019.9.24
    P2047 [NOI2007]社交网络
    P2286 [HNOI2004]宠物收养场
    P1342 请柬 建反图+dijkstra
  • 原文地址:https://www.cnblogs.com/sugerandmaster/p/11502572.html
Copyright © 2020-2023  润新知