問題描述:
最近剛開始做Leetcode,結果剛做到第三題,就發現了問題。明明自己編譯器結果是對的,爲什麼官網運行一下就不對了呢?
結果發現,問題出在 ++j 上面。
這是我遇到的一個情況:
m[s[j]]=++j;
這句話,在我的dev c++中 ,是這樣的(舉個例子,用詞可能不太恰當):
1.首先a=m[s[j] ]
2.j=j+1
3 a=j
這裏的 a 實際上就是原來的 m [ s [ j ] ] ,我沒有對 m [ s[ j+1] ] 進行修改
而在官網的 c++ 中運行,他執行的步驟是這樣的:
1. j=j+1
2. m [ s[ j] ] = j;
這裏直接 修改的是 m [ s[ j+1] ]
概括一下:
devc++中 ,將 j+1 賦值給 m [ s [j] ]
而官網中,先j=j+1 ,然後 變成了這樣 m [ s[ j+1] ] =j+1 (這裏的j 是原來的j 不是 j=j+1 後的 j)
不知道各位有沒有明白我的意思。。。。說的可能有點亂(溜