2017年4月27日 星期四

[LeetCode] 166. Fraction to Recurring Decimal

轉自LeetCode

Given two integers representing the numerator and denominator of a fraction, return the fraction in string format.
If the fractional part is repeating, enclose the repeating part in parentheses.
For example,
  • Given numerator = 1, denominator = 2, return "0.5".
  • Given numerator = 2, denominator = 1, return "2".
  • Given numerator = 2, denominator = 3, return "0.(6)".
<Solution>
這題是要將分數改寫成小數,如果有循環的部分,就用個括號表示

想法如下
  • 先將分子分母都取絕對值,並轉成 long 來計算
  • 判斷有沒有正負號
  • 是否整除,是的話就回傳答案
  • 計算餘數,同時間用一個 hash map 記錄出現過的餘數,以及其對應的位置。一旦餘數重複了,就把對應的位置用括號括起來,然後回傳答案
code如下(參考資料)

沒有留言:

張貼留言