輸入乙個長度小於100的字串
輸入內容:abc3(a)
輸出展開後的字串
輸出結果:aaacba
strings=input()
stack =
for s in strings:
if s.isalpha():
elif s.isdigit():
elif s == '{' or s == '[' or s == '(':
else: # 如果遇到右括號,則出棧到第乙個左括號
temp =
# 取出括號中的內容
while stack[-1] != '{' and stack[-1] != '[' and stack[-1] != '(':
temp.insert(0, stack.pop(-1))
# 彈出遇到的第乙個左括號
stack.pop(-1)
# 取出左括號前的數字,數字可能不只有一位:
num =
count = 0
# 必須考慮第一字元就是數字的情況
while true:
if len(stack) == 0:
break
if not stack[-1].isdigit():
break
if stack[-1].isdigit():
num.insert(0, stack.pop(-1))
# 計算需要重複的次數
for i in range(len(num)):
count = count * 10 + int(num[i])
# 重複括號中的字串
temp = temp * count
# 將重複好的字串再壓入棧中
for t in temp:
# 出棧
while stack:
print(stack.pop(-1), end='')
參考: 2020華為筆試程式設計題
給定兩個字元集合,乙個為全量字符集,乙個為已占用字符集。已占用的字符集中的字元不能再使用,要求輸出剩餘可用字符集。輸入描述 輸入為乙個字串,字串中包含了全量字符集和已占用字符集,兩個字符集使用 連線,前面為全量,後面為已占用。已占用字符集中的字元一定是全量字符集中的字元。字符集中的字元跟字元之間用英...
筆試 程式設計題
1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...
華為筆試程式設計1
請在乙個字串中找出連續最長的數字串。具體描述如下圖 演算法思想 這個題目比較簡單,可以迴圈遍歷一次,判斷當前字元是否為數字,如果是則記錄當前長度加1,否則,判斷當前長度是否大於等於最大長度,如果是,則更新最大長度和數字的起始位置 為了能將最大長度的連續數字輸出,故作此記錄 並將當前長度置為0,重新統...