字串處理(計蒜客--解碼)
蒜頭君自己發明了一種字串的編碼方式,對於只含有大小寫字母的字串,可以用數字來表示括號裡面的串連續出現的次數(數字有可能超過一位數)。比如A(abcd)2
等價於Aabcdabcd
。特別地,如果數字前面沒有括號,表示緊貼數字的前面的 一個字母 出現的次數。比如abc2
表示abcc
。為了降低解碼的難度,蒜頭君保證括號 不會巢狀。
蒜頭君把這個編碼方式告訴了花椰妹,然後蒜頭君在紙條上寫下了要對花椰妹說的話。現在花椰妹希望你幫她完成解碼,看看蒜頭君對她說了什麼。
輸入格式
輸入一行字串,只含有大小寫字母、數字和小括號。字串長度不大於 1000,保證輸入字串合法。
輸出個數
輸出一行,表示蒜頭君對花椰妹說的話。保證輸出字串長度不大於
樣例輸入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
(計蒜客 31453)ACM-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 Queries(Trie處理位運算問題)
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 Truefriend(fwt)
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