这道题需要注意的是k可能不止一位数,所以需要按照下面的规则进行:读取到 [ ,把当前的读取到的字符串和 repeat 值分别存储到一个栈。每次读到 a-z 的字符直接拼接到当前字符串即可读取到数字,累加 repeat 值读取到 ],则需要取出栈内数字和栈内字符串,栈内数字用于把当前字符串重复 k 次,栈内字符串用于拼接在当前字符串的前边作为前缀,这样一套整体的流程下来即可符合题意。func ...
SnowKagura‘s blog
直面生活,热爱生活这个题目就是需要判断给定字符串能否由多个相同子串构成,如果可以就返回true。构造一种比较巧妙的方法是将s拼接两次,变成2s,然后掐头去尾,剩下的部分如果...
要找到缺失的第一个正数,就可以把数组范围内的 nums[i] 放到 nums[i]-1 的位置上去,比如 2 放到 1, 3 放到 2,那么最后交换好的数组从头到尾遍历的第一个 nums[i] != i+1 的位置即为缺失的第一个正数。因为这样做最多只产生 n 次 swap,所以最终时间复杂度仍然是 O(n)func firstMissingPositive(nums []int) int ...
字符串相加这个用一个carry代表进位,其他的模拟竖式加法即可func addStrings(num1 string, num2 string) stri...
打家劫舍定义 dp[i] 为前 i 个房子抢到的最大金额,那么有 $dp[i] = max(dp[i-1], dp[i-2] + nums[i])$func rob(nums []int) int { n := len(nums) if n == 1 { return nums[0] } dp := make([]int, n) dp[...