1. 程式人生 > >字串處理(計蒜客--解碼)

字串處理(計蒜客--解碼)

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數(數字有可能超過一位數)。比如A(abcd)2等價於Aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 一個字母 出現的次數。比如abc2表示abcc。為了降低解碼的難度,蒜頭君保證括號 不會巢狀

蒜頭君把這個編碼方式告訴了花椰妹,然後蒜頭君在紙條上寫下了要對花椰妹說的話。現在花椰妹希望你幫她完成解碼,看看蒜頭君對她說了什麼。

輸入格式

輸入一行字串,只含有大小寫字母、數字和小括號。字串長度不大於 10001000,保證輸入字串合法。

輸出個數

輸出一行,表示蒜頭君對花椰妹說的話。保證輸出字串長度不大於 100000

100000

樣例輸入1

j2s2k2

樣例輸出1

jjsskk

樣例輸入2

a10

樣例輸出2

aaaaaaaaaa
這題要注意的地方是他的數字有可能不止一位。
#include <stdio.h>
#include <string.h>

int main(void)
{
	char s1[1000] = { 0 };//s1是要解碼的字串
	
	char s2[1000] = { 0 };//s2用來儲存()內的字串

	gets(s1);
	
	for(int i = 0; i < strlen(s1); i++)
	{
		int index = 0;//index是s1的下標
		if(s1[i] == '(')
		{
			i++;
			while(s1[i] != ')')
			{
				s2[index] = s1[i];
				i++;
				index++;
			}
			i++;
			if(!(s1[i+1] >= '0' && s1[i+1] <= '9'))//這裡的if else判斷')'後面的數是否是兩位數
			{
			
				for(int j = 0; j < s1[i] - '0'; j++)
				{
					printf("%s", s2);
				}
			}
			else
			{
				int k = (s1[i] - '0') * 10 + (s1[i+1] - '0');
				for(int j = 0; j < k; j++)
				{
					printf("%s", s2);
				}
				i++;
			}
			memset(s2, '\0', sizeof(s2));//初始化s2
		}
		else if(s1[i] >= '0' && s1[i] <= '9')
		{
			if(!(s1[i+1] >= '0' && s1[i+1] <= '9'))//這裡的if else判斷字母后面的數字是不是兩位數

			{
				for(int j = 0; j < s1[i] - '0'; j++)
				{
					printf("%c", s1[i-1]);
				}
			}
			else
			{
				int k = (s1[i] - '0') * 10 + (s1[i+1] - '0');
				for(int j = 0; j < k; j++)
				{
					printf("%c", s1[i-1]);
				}
				i++;
			}
		}
		else if(!(s1[i+1] >= '0' && s1[i+1] <='9'))
		{
			printf("%c", s1[i]);
		}
	}
	return 0;
}


相關推薦

字串處理--解碼

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數(數字有可能超過一位數)。比如A(abcd)2等價於Aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 一個字母 出現的次數。比如abc2表示a

31453ACM-ICPC 2018 徐州賽區網路預賽

題意:n個數字排成一圈,每個數字範圍[0, ],問有多少種不同的序列滿足對於所有相鄰的兩個數字,它們異或值不能為,其中第一個數字和最後一個數字也算相鄰。(0<n,k≤1e6) . 解析:

UCloud 的安全秘鑰 初賽第五場待解決

限制 一行 序列 0ms n) content mes 初賽 -o 20.7% 1200ms 262144K 每個 UCloud 用戶會構造一個由數字序列組成的秘鑰,用於對服務器進行各種操作。作為一家安全可信的雲計算平臺,秘鑰的安全性至關重要。因此,UCloud

UCloud 機房的網絡搭建初賽第五場

出口 表示 -s box ace res += 建立 tps UCloud 剛剛建立一個新機房,近日正在進行網絡搭建。機房內有 nn 臺服務器和 mm 個分線器,整個機房只有一個網線出口。分線器的作用是將一根網線轉換成多根網線。蒜頭君也知道每個分線器輸出的最大網線根數(不

藍橋杯模擬賽B組第五題 末尾零的個數模板題

! 末尾有多少個 00 呢?N! = 1 \times 2 \times \cdots \times NN!=1×2×⋯×N。程式碼框中的程式碼是一種實現,請分析並填寫缺失的程式碼。#include <iostream>using namespace std;in

解碼

蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數(數字有可能超過一位數)。比如A(abcd)2等價於Aabcdabcd。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 一個字母 出現的次數。比如abc2表示a

15430 XOR QueriesTrie處理位運算問題

ron 二進制 進制 插入 我們 整數 容易 位置 xor 題意: 給出一個長度為n的數組C,回答m個形式為(L, R, A, B)的詢問, 含義為存在多少個不同的數組下標k屬於[L, R]滿足C[k] XOR A >= B(式中XOR為異或運算)。 T組測試數

騰訊課堂的物理實驗2017初賽第三場

text ram amp tex 方向 top names rip des A題 在騰訊課堂的物理課上,進行了一個有趣的物理實驗。 在一個長度為 LL 米的光滑軌道上,小車 A 在 00 時刻以 1\mathrm{m/s}1m/s 的速度從左端出發向右運動,小車 B 在

第五場 UCloud 的安全秘鑰中等 (尺取遊標法

sca http 數組 desc 出現 滿足 說明 tom tor 每個 UCloud 用戶會構造一個由數字序列組成的秘鑰,用於對服務器進行各種操作。作為一家安全可信的雲計算平臺,秘鑰的安全性至關重要。因此,UCloud 每年會對用戶的秘鑰進行安全性評估,具體的評估方法如

UCloud 的安全秘鑰 ——hash

pan ref namespace mes 能夠 targe com print lower   題目鏈接:https://nanti.jisuanke.com/t/15769。   題意是求可以變換位置以後相同的子串有多少個,那麽做法是只要每個數字的平方和,立方和以及四次

--爬樓梯 動態規劃

tle nbsp vector main long 3.1 false n) 方法 假設你現在正在爬樓梯,樓梯有 nn 級。每次你只能爬 11 級或者 22 級,那麽你有多少種方法爬到樓梯的頂部? 輸入格式 第一行輸入一個整數 n(1\leq n \leq 50)n

16495 Truefriendfwt

ios public () eof .cn png pac log typedef #include <iostream> #include <cstring> #include <cstdio> using namespace st

16492 building二分線段樹/分塊

sin cst include sqrt ++ building scanf mat math 題解: 考慮用線段樹維護樓的最大值,然後這個問題就很簡單了。 每次可以向左二分出比x高的第一個樓a,同理也可以向右二分出另一個樓b,如果a,b都存在,答案就是b-a-1。 註意到

【推導】17116 2017 ACM-ICPC 亞洲區西安賽區網絡賽 C. Sum

數位 std acm-icpc 多少 icp 正整數 cst space 超過 題意:S(x)被定義為x的十進制表示下的數位之和。給你x,讓你找一個正整數k,使得S(kx)能被233整除。k不超過2千位。 由於x不超過1000000,不論x是多少,10000000重復23

【分塊】17120 2017 ACM-ICPC 亞洲區西安賽區網絡賽 G. Xor

-i main stream 異或 cpc -1 eof wan 細節 題意:給一棵樹,每個點有權值。q次詢問a,b,k,問你從a點到b點,每次跳距離k,權值的異或和? 預處理每個點往其根節點的路徑上隔1~sqrt(n)的距離的異或和,然後把詢問拆成a->lca(a

直線的交點計算幾何 + 逆序對

clas ret ons oid date pda 所有 efi define 題目鏈接 直線的交點 兩條直線的交點如果落在兩個平板之內的話 假設這兩條直線和兩條平板的交點橫坐標分別為 $x1, x2, X1, X2$ 那麽有$(x2 - x1)(X2 - X1)

17119 Trig Function 數學 2017 ACM-ICPC 亞洲區西安賽區網絡賽

url ycm userinfo 數學 href targe mar doc www 融只aU靶榷7拓O蟻康http://shufang.docin.com/sina_6272847333 殖3BNO蝗fR夭帕慘95餡http://shufang.docin.com/si

NOIP2017提高組模擬賽day1

種類數 sca double 發的 ide %d ram 同時 需要 T1:小X的質數 小 X 是一位熱愛數學的男孩子,在茫茫的數字中,他對質數更有一種獨特的情感。小 X 認為,質數是一切自然數起源的地方。 在小 X 的認知裏,質數是除了本身和 1 以外,沒有其他因數的數

17417 Highest Tower思維+圖論

sca 選擇 blog 基於 一個點 oid ons ++ i++ 題解: 實際上一個可行解即選取長和寬的一個,使得最後每一組選第一維的數值都不同 在此基礎上,使得另一維的和最大。 然後建立圖論模型 對於每一個方塊,在a和b之間連邊。 對於選擇的方案,如果選擇a->

2017 NOIP 提高組模擬賽Day1 T1 小X的質數 線性篩素數

範圍 線性篩 mat 需要 接下來 包含 能夠 數字 bottom 小 X 是一位熱愛數學的男孩子,在茫茫的數字中,他對質數更有一種獨特的情感。小 X 認為,質數是一切自然數起源的地方。 在小 X 的認知裏,質數是除了本身和 1 以外,沒有其他因數的數字。 但由於小 X