華為筆試程式設計題之括號展開

2021-09-25 04:07:44 字數 1083 閱讀 6423

輸入乙個長度小於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,重新統...