剑指 Offer 46. 把数字翻译成字符串
func translateNum(num int) int {
if num < 10 {return 1}
str := strconv.Itoa(num)
n := len(str)
dp := make([]int,n+1)
dp[0] = 1
dp[1] = 1
for i:=2;i<=n;i++{
temp := string(str[i-2]) + string(str[i-1])
if temp >= "10" && temp <= "25" {
dp[i] = dp[i-1] + dp[i-2]
} else {
dp[i] = dp[i-1]
}
}
return dp[n]
}
剑指 Offer 48. 最长不含重复字符的子字符串
// 思路1,暴力+双指针,3. 无重复字符的最长子串
// 思路2:动态规划,后面在再做
func lengthOfLongestSubstring(s string) int {
l,r,ans := 0, 0, 0
for r < len(s) {
t := s[r]
for i:=l;i<r;i++{
if s[i] == t {
l = i+1
break
}
}
ans = max(ans,r-l+1)
r++
}
return ans
}
func max(a,b int) int {if a > b{return a}
return b
}