classSolution: deffind_continuous_sequence(self, target_sum): l = 1 r = 2 res = [] while l < r: total = (l + r) * (r - l + 1) / 2 if total == target_sum: res.append([i for i inrange(l, r+1)]) l += 1 elif total < target_sum: r += 1 else: l += 1 return res
if __name__ == "__main__": print(Solution().find_continuous_sequence(9))
[[2, 3, 4], [4, 5]]
58.1 翻转单词序列
题目描述
给定一个句子,翻转单词的顺序,然后输出。
Input: "This is a sample"
Output: "sample a is This"
题解
思路: 先翻转整个句子,再翻转每个单词
时间复杂度O(n),空间复杂度O(1)
classSolution: defreverse_sentence(self, strs): strs = strs[::-1] s = strs.split(" ") return" ".join(s[i][::-1] for i inrange(len(s)))
if __name__ == "__main__": strs = "This is a sample" print(Solution().reverse_sentence(strs))
classSolution: defleft_rotate_string(self, strs, k): n = len(strs) if n == 0: return"" if n < k: k = k % n strs = strs[::-1] return strs[:n-k][::-1] + strs[n-k:][::-1]
if __name__ == "__main__": strs = "abcXYZdef" k = 3 print(Solution().left_rotate_string(strs, k))