snakify.org 是老師推薦練習的網站,聽說是美國高中生練習用的。今天才突然想到沒有留下紀錄,但因為解題後,他都會幫忙儲存正確的答案,但還是要找來找去的,乾脆就記錄下來比較好找。先從現在做的第十章開始記錄吧!!!之後有機會再補前面的@@
- 第一章:input, print and numbers
- 第二章:integer and float numbers
- 第三章:conditions: if, then, else
- 第四章:for loop with range
- 第五章:strings
- 第六章:while loop
- 第七章:lists
- 第八章:functions and recursion
- 第九章:two dimensional lists ( arrays )
- 第十章:sets → 不重複且不排列的 集合(set),這裡的a, b當set
10-1:set可以用len(a)來計算長度(因不重複,所以長度就是有幾個)
10-2:可以用 a & b (交集) 來看a, b 有多少重複的
10-3:可以用 sorted(a) 變成 list 並排列大小,感謝海獅團隊分享sorted,測試先生分享join
10-4:a = [int(i) for i in input().split()] 這個是轉成數字
b = list( input().split() ) 這個是字串 list
10-5:a - b,就是差集,保留a有,但b沒有
10-6:用split只能區分空白,但包含標點符號,所以有可能計算錯誤。
10-7:要先將input 放入變數a,才可以來區分a是甚麼東西。
10-8:這裡先使用dict來儲存。 - 第十一章:dictioinaries,"鍵"不能重複
11-1:原始的方式,有的話就將值+1
11-2:直接將取得的值,放入到dict裡
11-3:要將dict轉成list,想好久才成功,原本用兩個迴圈,導致資料重複且多做很多次。
其實只要用 list.insert(0,[陣列])就可以成功了@@而且list 的sort不能放在print,要先跑一次,再列出list。看了答案後發現,dict可以用sorted(dict)來排列~~
11-4:找出最多出現的word。
11-5:看檔案是否可讀寫執行。解答先用dic排出wirte,read,execute。
11-6:country, *cities = input().split(),這招不錯用,可將後面輸入的變成一個陣列。11-7也有用到~~
11-7:先將內容變成dic1(k,v)並加總。然後sorted排列成另一個dic2,並將相同數量的變成key,word變成value(有用小技巧,加空白來區隔)。在排列一次dic3,將數量由大到小排列,並列出排過的word。
11-8:因為分隔的符號有不一樣,所以先分隔英文跟拉丁文,再將拉丁文分隔出來。
沒有留言:
張貼留言
注意:只有此網誌的成員可以留言。