Leetcode 166. Fraction to Recurring Decimal
生活随笔
收集整理的這篇文章主要介紹了
Leetcode 166. Fraction to Recurring Decimal
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
這個是我比較原始的解法。在這里有個trick就是把int擴展為long。要考慮負數情況,以及負數最小值的情況。
public class Solution {public String fractionToDecimal(int numerator, int denominator) {long lnumerator = numerator;long ldenominator = denominator;if (lnumerator == 0) {return "0";}boolean isPositive = true;if ((lnumerator >0 && ldenominator<0) || (lnumerator <0 && ldenominator>0)) {isPositive = false;}if (lnumerator < 0) {lnumerator = -lnumerator;}if (ldenominator < 0) {ldenominator = -ldenominator;}String left = "";if (lnumerator >= ldenominator && lnumerator % ldenominator == 0) {left = String.valueOf(lnumerator / ldenominator);if (!isPositive) {left = "-" + left;}return left;}if (denominator != 0) {long zhengshu = lnumerator / ldenominator;lnumerator = lnumerator % ldenominator;List<Long> yushus = new ArrayList<Long>();while (true) {long shang = lnumerator / ldenominator;long yushu = lnumerator % ldenominator;left = left + String.valueOf(shang);lnumerator = yushu * 10;if (shang == 0) {yushus.add(yushu);continue;} else if (yushu == 0) {left = String.valueOf(zhengshu) + "." + left.substring(1);if (!isPositive) {left = "-" + left;}return left;} else {for (int i = 0; i < yushus.size(); i++) {if (yushus.get(i) == yushu) {left = String.valueOf(zhengshu) + "." + left.substring(1, i+1) + "(" + left.substring(i+1) + ")";if (!isPositive) {left = "-" + left;}return left;}}}yushus.add(yushu);}}return left;} }總結
以上是生活随笔為你收集整理的Leetcode 166. Fraction to Recurring Decimal的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 动态规划套路在最长公共子串、最长公共子序
- 下一篇: secureCRT The remote