海北州网站建设公司,哪里的网站可以做围棋死活题,推广代理公司,祖庙网站建设神奇字符串----2023/5/6
神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成#xff0c;并需要遵守下面的规则#xff1a;
神奇字符串 s 的神奇之处在于#xff0c;串联字符串中 ‘1’ 和 ‘2’ 的连续出现次数可以生成该字符串。 s 的前几个元素是 s “1221121221221121122……” 。…神奇字符串----2023/5/6
神奇字符串 s 仅由 ‘1’ 和 ‘2’ 组成并需要遵守下面的规则
神奇字符串 s 的神奇之处在于串联字符串中 ‘1’ 和 ‘2’ 的连续出现次数可以生成该字符串。 s 的前几个元素是 s “1221121221221121122……” 。如果将 s 中连续的若干 1 和 2 进行分组可以得到 “1 22 11 2 1 22 1 22 11 2 11 22 …” 。每组中 1 或者 2 的出现次数分别是 “1 2 2 1 1 2 1 2 2 1 2 2 …” 。上面的出现次数正是 s 自身。
给你一个整数 n 返回在神奇字符串 s 的前 n 个数字中 1 的数目。 示例1
输入n 6
输出3
解释神奇字符串 s 的前 6 个元素是 “122112”它包含三个 1因此返回 3。 示例2
输入n 1
输出1提示 1 n 105
题解1
class Solution:def magicalString(self, n: int) - int:if n 3:return 1strs 122add_str 1index, res 2, 1while len(strs) n:if len(strs) int(strs[index]) n:if add_str 1:res int(strs[index])-1else:if add_str 1:res int(strs[index])strs int(strs[index])*add_strindex 1if add_str 2:add_str 1else:add_str 2return res题解2参考
class Solution:def magicalString(self, n: int) - int:s [1, 2, 2]i 2while len(s) n:pre s[-1]cur 3 - pre# cur 表示这一组的数字s[i] 表示这一组数字出现的次数s [cur] * s[i]i 1return s[:n].count(1)来源力扣LeetCode 链接https://leetcode.cn/problems/magical-string 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。
密钥格式化----2023/5/6
给定一个许可密钥字符串 s仅由字母、数字字符和破折号组成。字符串由 n 个破折号分成 n 1 组。你也会得到一个整数 k 。
我们想要重新格式化字符串 s使每一组包含 k 个字符除了第一组它可以比 k 短但仍然必须包含至少一个字符。此外两组之间必须插入破折号并且应该将所有小写字母转换为大写字母。
返回 重新格式化的许可密钥 。 示例1 输入S 5F3Z-2e-9-w, k 4
输出5F3Z-2E9W
解释字符串 S 被分成了两个部分每部分 4 个字符注意两个额外的破折号需要删掉。示例2
输入S 2-5g-3-J, k 2
输出2-5G-3J
解释字符串 S 被分成了 3 个部分按照前面的规则描述第一部分的字符可以少于给定的数量其余部分皆为 2 个字符。提示: 1 s.length 105 s 只包含字母、数字和破折号 ‘-’. 1 k 104 题解参考
class Solution:def licenseKeyFormatting(self, s: str, k: int) - str:str_list s.split(-)temp .join(str_list)temp temp[::-1]res []for i in range(0, len(temp), k):if len(temp) - i k:res.append(temp[i:ik])else:res.append(temp[i::])end_str -.join(res)return end_str[::-1].upper()来源力扣LeetCode 链接https://leetcode.cn/problems/license-key-formatting 著作权归领扣网络所有。商业转载请联系官方授权非商业转载请注明出处。