[問題] 求解有幾個位數不同的問題

作者: Redbeansauce (泓豆醬料)   2018-04-03 01:37:10
令a和b為兩變數(0~9999),可自行輸入
試求有幾個位數不同
例如:1234/2345。 四個位數不同
例如:1123/1233。兩個位數不同
有人知道要怎麼表達嗎?
作者: Panthalassa   2018-04-03 02:26:00
假定 a, b 是字串,所求:sum([ a[i] != b[i] for i in range(len(a)) ])
作者: ThxThx (洗洗睡)   2018-04-03 03:23:00
樓上這樣 1). 沒有考慮len(b) < len(a)的時候會有error2). 比較慢又不pythonic我認為正確的作法是sum(x != y for x, y in zip(a, b))這是當a,b一樣長的時候,不保證一樣的時候sum(x != y for x, y in zip(reversed(a), reversed(b)))
作者: Panthalassa   2018-04-03 03:38:00
噢對!但也許應該要前面放 assert ?但若長度不一樣的話,用 zip 會補 None 然後算成不同不確定是否滿足需求...從原 Po 的敘述來看應該是要補 0
作者: ThxThx (洗洗睡)   2018-04-03 05:26:00
嗯嗯有道理我第二個答案會忽略比較長的把第二個答案zip換成itertools.zip_longest應該可以
作者: djshen (djshen)   2018-04-03 10:15:00
應該先說一下自己的想法
作者: s860134 (s860134)   2018-04-03 12:12:00
你的思路沒錯阿轉 str 用 zfill其實這根本就只是對 python buildin function 記多少而以

Links booklink

Contact Us: admin [ a t ] ucptt.com