Java練習 SDUT-2761_編碼
阿新 • • 發佈:2018-09-27
初始 初始化 next output -i abc java sample des
編碼
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
給你一個由大寫字母組成的組成的字符串,你可以用如下規則對其進行編碼:
1、 包含K個相同字母的連續字符串可以用KX表示,其中X是相同的字母。
2、 如果K為1,不輸出K
Input
輸入有多組,直到文件結束。每組一個字符串,長度為10000以內
Output
輸出編碼後的字符串。
Sample Input
ABC
ABBCCC
Sample Output
ABC
A2B3C
Hint
Source
lin
可以定義一個數組一個字符數組,存儲不同的字符和它的數量,想試試類。
import java.util.*; public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int i,j,num; String s; p[] a = new p[10050];//類的數組定義 for(i=0;i<=10000;i++)//別忘了初始化 a[i] = new p(); num = 0; while(cin.hasNextLine()) { s = cin.nextLine(); num = 0; for(i=0;i<s.length();i++) { a[num].data = s.charAt(i); a[num].num = 1; for(j=i+1;j<s.length();j++) { if(s.charAt(j)!=a[num].data) break; else a[num].num++; } num++; i = j - 1; } for(i=0;i<num;i++) { if(a[i].num!=1) System.out.print(a[i].num); System.out.print(a[i].data); } System.out.println(); } cin.close(); } public static class p { char data; int num; } }
Java練習 SDUT-2761_編碼