iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 7
0
Software Development

挑戰用JavaScript刷LeetCode的Top Interview Questions系列 第 7

刷LeetCode-Top Interview Questions 字串篇1

  • 分享至 

  • xImage
  •  

主題:String

1. Reverse String

將字串反轉並回傳

思考邏輯:就反過來

Ruby:

def reverse_string(s)
  s.reverse!
end

JavaScript:

var reverseString = function(s) {
    return s.reverse()
};

2. Reverse Integer

將整數做倒轉,例如123變321,456變654

思考邏輯:將input除以10以後取餘數,然後一個個放入ans中,過程中要先判斷是否發生overflow,若有直接回傳0;接著判斷是正整數還是負整數

Ruby:

def reverse(x)
  return 0 if x.bit_length >= 32
  
  if x>1
    ans = reverse_x(x)
  elsif x<0
    ans = -reverse_x(-x)
  else
    return x
  end
    
  return ans if ans.bit_length < 32
  return 0
end

def reverse_x(x, ans = 0)
  n = Math.log10(x).floor+1
  n.times do 
    pop = x % 10
    x /= 10
    ans = ans * 10 + pop
  end 
  ans
end

小結:

  • 反轉字串時可以直接使用reverse method;反轉整數的話我則是將數字從個位數一個個拿出來加到新的整數中,過程中為了精簡程式碼,另外寫了一個reverse_x來做這件事。
  • 歡迎大家分享自己的寫法喔!! : )

上一篇
刷LeetCode-Top Interview Questions 陣列篇6
系列文
挑戰用JavaScript刷LeetCode的Top Interview Questions7
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言