跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Google 面试题:字符串解码
未分類
28 10 月 2020

Google 面试题:字符串解码

Google 面试题:字符串解码

資深大佬 : zzzrf 1

给出一个表达式 s,此表达式包括数字,字母以及方括号。在方括号前的数字表示方括号内容的重复次数(括号内的内容可以是字符串或另一个表达式),请将这个表达式展开成一个字符串。

点此在线做题

样例 1

输入: S = abc3[a] 输出: "abcaaa" 

样例 2

输入: S = 3[2[ad]3[pf]]xyz 输出: "adadpfpfpfadadpfpfpfadadpfpfpfxyz" 

题解

把所有字符一个个放到 stack 里, 如果碰到了 ],就从 stack 找到对应的字符串和重复次数,decode 之后再放回 stack 里。

class Solution:     """     @param s: an expression includes numbers, letters and brackets     @return: a string     """     def expressionExpand(self, s):         stack = []         for c in s:             if c != ']':                 stack.append(c)                 continue                              strs = []             while stack and stack[-1] != '[':                 strs.append(stack.pop())                          # skip '['             stack.pop()                          repeats = 0             base = 1             while stack and stack[-1].isdigit():                 repeats += (ord(stack.pop()) - ord('0')) * base                 base *= 10             stack.append(''.join(reversed(strs)) * repeats)                  return ''.join(stack) 

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具