有一個密鑰字符串 S ,只包含字母,數字以及 '-'(破折號)。其中, N 個 '-' 將字符串分成了 N+1 組。
給你一個數字 K,請你重新格式化字符串,使每個分組恰好包含 K 個字符。特別地,第一個分組包含的字符個數必須小於等於 K,但至少要包含 1 個字符。兩個分組之間需要用 '-'(破折號)隔開,並且將所有的小寫字母轉換爲大寫字母。
給定非空字符串 S 和數字 K,按照上面描述的規則進行格式化。
打起精神刷題了
直接更新blog
使用python來寫
思路分析:根據題目的描述,感覺就是需要去掉它的'-',然後判斷字符的個數;根據字符的個數;對字符的總數進行一個除餘操作,餘數就是密碼組第一串字符的長度
先對去掉'-'的字符串進行字符串的劃分,開一個數組存放劃分的字符串 字符串個數爲上面除餘運算的除數
然後使用upper將小寫字母變爲大寫
最後使用‘-’拼接數組存放的字符串即可
class Solution(object): def licenseKeyFormatting(self, s, k): """ :type s: str :type k: int :rtype: str """ res=[] s=''.join(s.split('-')) print(s) a,b=divmod(len(s),k) print(a,b) if b: res.append(s[0:b].upper()) for i in range(0,a): res.append(s[b+k*i:b+k*(i+1)].upper()) print(res) return '-'.join(res)