iT邦幫忙

0

請問我用Typescript寫leetcode 9.Palindrome Number 執行時出現 Wrong Answer,要怎解決呢?

  • 分享至 

  • xImage

各位大大好!我最近用Typescript寫 leetcode 9.Palindrome Number,我上網找不到TypeScript這題解答一直沒找到,以下是我的寫法,用C、C++、C#、python、php、javacript、swift都可以過,唯獨TypeScript寫法,按送出,結果出現Wrong Answer我不知道是哪一行打錯或變數打呢?想請會寫Typescript的大大幫忙!假設有更好寫法請下面留言和討論告訴我!我會虛心受教。因為我是TypeScript新手。
/images/emoticon/emoticon04.gif/images/emoticon/emoticon17.gif

以下是我的寫法(對不起各位大大,while(reverse!=0)是昨天眼殘我打錯,我現在看到討論區後,我改成while(temp!=0),但是還是出現Wrong Answer,請各位大大諒解):

function isPalindrome(x: number): boolean {
    
    if(x<0){
        return false;
    }

    let temp:number=x;
    let reverse:number=0;

    while(temp!=0){
        reverse=reverse*10+temp%10;
        temp/=10;
    }

    return reverse===x;

};
看更多先前的討論...收起先前的討論...
player iT邦大師 1 級 ‧ 2022-11-09 17:11:34 檢舉
前面 let reverse:number=0;
後面的 while 迴圈用 (reverse!=0) 判斷?這樣在你眼中會執行到嗎?
你累了嗎?看你的寫法,應該用 (temp!=0) 判斷吧。
謝謝妳!小弟眼殘,我知道錯在哪了
不好意思!我把改成while迴圈用(temp!=0)來判斷,結果還是Wrong Answer

function isPalindrome(x: number): boolean {

if(x<0){
return false;
}

var temp:number=0;
var reverse=0;

temp=x;

while(temp!=0){
reverse=reverse*10+temp%10;
temp/=10;
}

return x===reverse;

};

但是還是出現Wrong Answer ,到底是為甚麼呢?
froce iT邦大師 1 級 ‧ 2022-11-09 21:32:43 檢舉
temp= temp/10^0;

js的除法會有小數點。你不能直接 temp/=10;
謝謝妳,我在試試看
temp=temp/10^0這行,為甚麼/10後面要加^0呢?
froce iT邦大師 1 級 ‧ 2022-11-10 08:05:42 檢舉
對float做XOR取整數。

話說刷題不是什麼語言翻譯過去就好,你得懂這題中的演算法到底做了什麼事,你跟我說你 javacript 能過,TS不知道temp除10要取整...
謝謝妳告訴我TS細節,我JS的temp那段是用temp=parseInt(temp/10)取整數,TypeScript的x變數是number,我以為做完temp/=10這段已經是整數,所以漏掉這個細節,但我沒有想到要對temp做xor取整數,謝謝妳讓我上寶貴一課。
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答