小明有一串很長的英文字母,可能包含大寫和小寫。
在這串字母中,有很多連續(xù)的是重復的。小明想了一個辦法將這串字母表達得更短:將連續(xù)的幾個相同字母寫成字母 + 出現(xiàn)次數(shù)的形式。 例如,連續(xù)的?55?個?a
,即?aaaaa
,小明可以簡寫成?a5
(也可能簡寫成?a4a
、aa3a
等)。
對于這個例子:HHHellllloo
,小明可以簡寫成?H3el5o2
。為了方便表達,小明不會將連續(xù)的超過9個相同的字符寫成簡寫的形式。
現(xiàn)在給出簡寫后的字符串,請幫助小明還原成原來的串。
輸入格式輸入一行包含一個字符串。
輸出格式輸出一個字符串,表示還原后的串。
輸入輸出樣例輸入 #1復制
H3el5o2
輸出 #1復制
HHHellllloo說明/提示
對于所有評測用例,字符串由大小寫英文字母和數(shù)字組成,長度不超過?100100。請注意原來的串長度可能超過?100100。
藍橋杯 2020 第一輪省賽 A 組 F 題(B 組 G 題)。
解題思路Java的String類容量很大能夠滿足字符串的擴張要求,因此結果保存在String字符串中;
使用s1記錄輸入的字符串,s2記錄輸出的字符串
s1[i]識別為0~9之間時,進行s2的字符填充;若數(shù)字為n則填充 n-1 個s1[i-1](數(shù)字前面一定為字母)
(只填充n-1個的原因為:當識別為字符時直接加入到s2中,若填充n個就會出現(xiàn)重復的一個)
s1識別為a~z之間時,直接將字符接在s1后
package newPro;
import java.util.*;
public class pro11 {
public static void main(String args[])
{ char s1[]=new char[100];
String s0,s2="";
Scanner in=new Scanner(System.in);
s0=in.next();
s1=s0.toCharArray();
for(int i=0;i='0'&&s1[i]<='9')
{
char ch=s1[i-1];
int num=s1[i]-'0'-1;
s2=String.format("%-"+(num+s2.length())+"s",s2).replace(' ',ch);
}
else s2+=s1[i];
}
System.out.println(s2);
}
}
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享標題:P8706[藍橋杯2020省AB1]解碼-創(chuàng)新互聯(lián)
URL網(wǎng)址:http://www.rwnh.cn/article20/dcogjo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊、網(wǎng)站維護、網(wǎng)站策劃、品牌網(wǎng)站設計、搜索引擎優(yōu)化、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容