两两交换链表中的节点/字符串相加

56 阅读1分钟

image.png

1602554716-MUKFhV-24.两两交换链表中的节点2.png

此时一定要画图,不画图,操作多个指针很容易乱,而且要操作的先后顺序

image.png

image.png

func addStrings(num1 string, num2 string) string {
   res := ""
   carry := 0
   l1, l2 := len(num1) - 1, len(num2) - 1
   for l1>=0 || l2>=0{
      x,y :=0,0
      if l1 >= 0 {
         x = int(num1[l1] - ('0'))
      }
      if l2 >= 0 {
         y = int(num2[l2] - ('0'))
      }
      sum := x+y+carry
      res += strconv.Itoa(sum%10)
      carry = sum/10
      l1--
      l2--
   }
   if carry != 0{
      res+=strconv.Itoa(carry)
   }

   return reverseString1(res)
}
//73
func reverseString1(str string) string {
   temp := []byte(str)
   left, right := 0, len(temp) - 1
   for left < right {
      temp[left], temp[right] = temp[right], temp[left]
      left++
      right--
   }
   return string(temp)
}