查看完整版本 : LeetCode

Susan﹏汪汪 2016-1-29 02:27 PM

[quote]原帖由 [i]fx360bx[/i] 於 2016-1-29 02:07 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434933715&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


你呢啲有冇 naive 寫法先… [/quote]

darigold 2016-1-29 02:43 PM

[quote]原帖由 [i]fx360bx[/i] 於 2016-1-29 01:41 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434932502&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
認真問下,你平時返工寫既 code 會唔會真係需要應用到呢啲 optimal 既 code?
[/quote]
有實際需要。在ChakraCore的工作,常常要和Google V8鬥快。
理論上,JavaScript array同個dictionary冇咩分別,underlying用一個hash table就得,但係你睇下呢隻JavascriptArray為左performance可以去到幾盡?

[url=https://github.com/Microsoft/ChakraCore/blob/master/lib/Runtime/Library/JavascriptArray.cpp]https://github.com/Microsoft/ChakraCore/blob/master/lib/Runtime/Library/JavascriptArray.cpp[/url]



[quote]
可以寫但冇寫到會唔會畀同事或者老細丙?或者你會唔會提點同事?
[/quote]


丙又唔會既,咪提醒一下opportunity to optimize囉。不過,好少見到有人code review有機會俾我提到呢句comment。

darigold 2016-1-29 02:50 PM

[quote]原帖由 [i]fx360bx[/i] 於 2016-1-29 01:44 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434932619&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


因為冇 mood 姐,如果係好有需要要用我一定嘗試理解曬佢~ :smile_35:

講時講,你 post 果隻大怪冇 documentation?:funk: [/quote]

.NET gc 有,寫得不錯。
https://github.com/dotnet/coreclr/blob/master/Documentation/botr/garbage-collection.md

如果.NET gc 真係好bug,睇完份doc一樣要de餐飽……好彩暫時冇。

Javascript ByteCodeGenerator 就自求多福了。

fx360bx 2016-1-29 02:56 PM

[quote]原帖由 [i]darigold[/i] 於 2016-1-29 02:43 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434935663&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]

有實際需要。在ChakraCore的工作,常常要和Google V8鬥快。
理論上,JavaScript array同個dictionary冇咩分別,underlying用一個hash table就得,但係你睇下呢隻JavascriptArray為左performance可以去到幾盡?

... [/quote]
一萬行…:smile_o12:
咁睇黎高 performance 既 code 都係好長的!

Google 真係下左唔少苦功喇~ :smile_40:
[url=http://arstechnica.com/apple/2016/01/new-chrome-for-ios-is-finally-as-fast-and-stable-as-safari/]http://arstechnica.com/apple/2016/01/new-chrome-for-ios-is-finally-as-fast-and-stable-as-safari/[/url]

stupidsing 2016-1-29 08:48 PM

[quote]原帖由 [i]darigold[/i] 於 2016-1-29 01:37 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434932266&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]

講真,真係唔知點解,so far我只係debug個呢隻大怪既好少部份。
稍為明白左dd eeheap和segment既data structure。

睇番前文後理,post大怪主要係因為回post時有少少谷氣,一百行都唔到就話好多code ……

算 ... [/quote]

因為測試做得好,我見有 48 hours stress test requirements,
同埋一定要搵專家寫,所以質素都高。
同埋一套gc 好多人用,唔可以成日轉囉。
一個細 bug 已經可以搞死出面幾十個 program,
普通人埋唔到手啦呢D野。

公司做緊個 project 都係 dotnet, 隻 app 有幾穩定靠晒你地喇。

darigold 2016-1-30 02:50 AM

岩岩開波train codewars
由低能級開始,主要係想練Python。

好多人可能覺得Python容易,C++難。
不過,對於我黎講,C++易,Python難。

難同易其實唔係絶對標準,每個人的背景和能力都不一樣,難定係易,其實係因人而異。

fx360bx 2016-1-30 02:52 AM

[quote]原帖由 [i]darigold[/i] 於 2016-1-30 02:50 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434977079&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
岩岩開波train codewars
由低能級開始,主要係想練Python。

好多人可能覺得Python容易,C++難。
不過,對於我黎講,C++易,Python難。

難同易其實唔係絶對標準,每個人的背景和能力都不一樣,難定係易 ... [/quote]

師兄加油~ :smile_o12:

darigold 2016-1-30 09:45 AM

[quote]
Make them bark
You have been hired by a dogbreeder to write a program to keep record of his dogs.
You've already made a constructor Dog, so no one has to hardcode every puppy.
The work seems to be done. It's high time to collect the payment.
..hold on! The dogbreeder says he wont pay you, until he can make every dog object .bark(). Even the ones already done with your constructor. "Every dog barks" he says. He also refuses to rewrite them, lazy as he is.
You can't even count how much objects that bastard client of yours already made. He has a lot of dogs, and none of them can .bark().
Can you solve this problem, or will you let this client outsmart you for good?
Practical info:
The .bark() method of a dog should return the string 'Woof!'.
The constructor you made (it is preloaded) looks like this:
class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age
[/quote]



我的code是這樣︰[code]class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age

    def bark(self):
        return "Woof!"[/code]Testing的時候出了這個error:



[quote]
Can you make newly created dogs bark?
Test Passed
Test Passed

And can you make the old ones to do the barking?
Traceback:
   in
[b]AttributeError: 'Dog' object has no attribute 'bark'[/b]
2 Passed
0 Failed
0 Errors
Process took 90ms to complete
[/quote]

睇左答案,依然唔明,咩叫做old ones?
Test code要點寫先至可以出做呢個error?

[[i] 本帖最後由 darigold 於 2016-1-30 02:09 PM 編輯 [/i]]

Susan﹏汪汪 2016-1-30 09:51 AM

[quote]原帖由 [i]darigold[/i] 於 2016-1-30 09:45 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434983801&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]




我的code是這樣︰class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age

... [/quote]一隻狗吠其他都一齊吠??

darigold 2016-1-30 10:48 AM

不是,正確答案是[code]def a(_):
  return "Woof!"

Dog.bark = a[/code]我覺得係某d我唔識既Python syntax導致的。

Susan﹏汪汪 2016-1-30 11:10 AM

[quote]原帖由 [i]darigold[/i] 於 2016-1-30 10:48 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434986466&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
不是,正確答案是def a(_):
  return "Woof!"

Dog.bark = a我覺得係某d我唔識既Python syntax導致的。 [/quote]咁呢個只係當bark係property
不同obj可以有不同bark

似係問題唔清晰

darigold 2016-1-30 12:19 PM

問題係唔清晰

我係想從error message backward infer test case係乜。

form5 2016-1-30 12:42 PM

[quote]原帖由 [i]darigold[/i] 於 2016-1-30 09:45 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434983801&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]我的code是這樣︰class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age
... [/quote]
因為bark 係冇bind 到入去Dog object,  點樣bind?
用def bark(self):   ....
冇左self, bark 係屬於Dog class, 吾係屬於instance of Dog
所以之後一call dog_obj.bark()  搵吾到bark, 所以出事

[[i] 本帖最後由 form5 於 2016-1-30 12:49 PM 編輯 [/i]]

darigold 2016-1-30 02:11 PM

[quote]原帖由 [i]form5[/i] 於 2016-1-30 12:42 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434992286&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
因為bark 係冇bind 到入去Dog object,  點樣bind?
用def bark(self):   ....
冇左self, bark 係屬於Dog class, 吾係屬於instance of Dog
所以之後一call dog_obj.bark()  搵吾到bark, 所以出事
[/quote]



加番self parameter,好似都唔得……

xianrenb 2016-1-30 04:07 PM

[quote]原帖由 [i]darigold[/i] 於 2016-1-30 09:45 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434983801&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]




我的code是這樣︰class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age

... [/quote]

可能類似以下:[code]class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age
d1 = Dog("d1", "breed1", "m", 2)
d2 = Dog("d2", "breed2", "m", 3)
Dog.bark = lambda self: "Woof!"
g = globals().copy()
for k, v in g.items():
    if isinstance(v, Dog):
        v.bark = lambda : Dog.bark(v)
d3 = Dog("d3", "breed3", "m", 4)
print(d1.bark())
print(d2.bark())
print(d3.bark())[/code]因為 (base class) object 好似無得改。
如果 globals 中有 dictionary 、 含有 Dog instance 的其他 class instance 等等,可能要再入去搵。

xianrenb 2016-1-30 05:39 PM

[quote]原帖由 [i]xianrenb[/i] 於 2016-1-30 04:07 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435002506&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


可能類似以下:class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age
d1 = Do ... [/quote]

原來無咁簡單,大概估到點解。
像以下應該得:[code]class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age
d1 = Dog("d1", "breed1", "m", 2)
d2 = Dog("d2", "breed2", "m", 3)
Dog.bark = lambda self: "Woof!"

g = globals().copy()
for k, v in g.items():
    if isinstance(v, Dog):
        v.bark = lambda : "Woof!"
        
d3 = Dog("d3", "breed3", "m", 4)
print(d1.bark())
print(d2.bark())
print(d3.bark())
if 'bark' in Dog.__dict__:
    del Dog.bark
print(d1.bark())
print(d2.bark())[/code]個 test case 應該是不許用新的 class definition ,不許加 Dog.bark 。

[[i] 本帖最後由 xianrenb 於 2016-1-31 07:08 AM 編輯 [/i]]

xianrenb 2016-1-31 07:12 AM

[quote]原帖由 [i]xianrenb[/i] 於 2016-1-30 05:39 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435006971&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]


原來無咁簡單,大概估到點解。
像以下應該得:class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
    ... [/quote]

196 樓的 demo code 先前寫錯,已更正。
即是如果無估錯,個 test case 是會檢查有沒有 Dog.bark ,有就會 del 。

stupidsing 2016-1-31 10:24 AM

[quote]原帖由 [i]darigold[/i] 於 2016-1-30 02:50 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=434977079&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
岩岩開波train codewars
由低能級開始,主要係想練Python。

好多人可能覺得Python容易,C++難。
不過,對於我黎講,C++易,Python難。

難同易其實唔係絶對標準,每個人的背景和能力都不一樣,難定係易 ... [/quote]


師兄講講Python 難係邊呢

stupidsing 2016-1-31 10:27 AM

題目有句 "The constructor you made (it is preloaded)"

似乎講緊已經 import 左
師兄再 class Dog 是覆蓋左原本的 dog 定義,
但可能仲有人用緊 import 入來的狗

至於 Dog.Bark = a, 做乜咁似 js prototype......

darigold 2016-1-31 12:21 PM

[quote]原帖由 [i]stupidsing[/i] 於 2016-1-31 10:24 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435043711&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
師兄講講Python 難係邊呢
[/quote]
難在唔熟o者,C++, C# 者Java有IDE我基本上諗到乜就寫到乜。
Python既話好多常用既operations我都仲要google
點寫static method, inheritance, overriding 甚至係點樣add一個element入list/dictionary我都要search google …

練codewars的原因就係呢度,我唔單止想要識,我想要熟。

darigold 2016-1-31 12:40 PM

狗問題我想明白了。原來是這樣!它的test code應該是這樣寫的



dog_module.py[code]class Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
        self.sex   = sex
        self.age   = age
d1 = Dog("d1", "breed1", "m", 2)[/code]user_module.py[code]from dog_module import *

# class Dog(object):
#     def __init__(self, name, breed, sex, age):
#         self.name  = name
#         self.breed = breed
#         self.sex   = sex
#         self.age   = age
#
#     def bark(self):
#             return "Woof!"

Dog.bark = lambda _ : "Woof!"[/code]最後是test.py[code]from user_module import *

d2 = Dog("d1", "breed1", "m", 2)
print d2.bark()
print d1.bark()[/code]呢段code應該success,但係如果用commented code,第二個bark就會fail… 好明顯我係唔熟使用dynamic languages...

[[i] 本帖最後由 darigold 於 2016-1-31 12:41 PM 編輯 [/i]]

stupidsing 2016-1-31 09:29 PM

微軟人做乜殺埋 python 果份 :smile_14:

學概念有so過學語法

form5 2016-1-31 11:06 PM

[quote]原帖由 [i]darigold[/i] 於 2016-1-31 12:40 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435050031&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
狗問題我想明白了。原來是這樣!它的test code應該是這樣寫的

dog_module.pyclass Dog(object):
    def __init__(self, name, breed, sex, age):
        self.name  = name
        self.breed = breed
... [/quote]
原嚟成隻狗換左

darigold 2016-1-31 11:48 PM

成功第一次冇Google寫出以下一段︰[code]def order(sentence):
    words = []
    last_word_digit = 0
    last_word_begins = 0
    for i in range(0, len(sentence)):
        if (sentence[i] == ' '):
            words.append((last_word_begins, i, last_word_digit))
            last_word_begins = i + 1
        else:
            asc = ord(sentence[i])
            if (asc > ord('0') and asc <= ord('9')):
                last_word_digit = asc - ord('0')
    words.append((last_word_begins, len(sentence), last_word_digit))
   
    for i in range(0, len(words)):
        for j in range(i + 1, len(words)):
            (i1, i2, i3) = words[i]
            (j1, j2, j3) = words[j]
            if (i3 > j3):
                temp = words[i]
                words[i] = words[j]
                words[j] = temp
               
    result = ""
    for i in range(0, len(words)):
        (w1, w2, w3) = words[i]
        for j in range(w1, w2):
            result += sentence[j]
        if (i != len(words) - 1):
            result += " "
    return result[/code]原問題是咁的


[quote]
Your task is to sort a given string. Each word in the String will contain a single number. This number is the position the word should have in the result.

Note: Numbers can be from 1 to 9. So 1 will be the first word (not 0).

If the input String is empty, return an empty String. The words in the input String will only contain valid consecutive numbers.

For an input: "is2 Thi1s T4est 3a" the function should return "Thi1s is2 3a T4est"
[/quote]


唔係好efficient,用bubble sort,substring都自己implement……不過好高興我終於開始記得d syntax,唔駛Google了。library可能要花長d時間先得。

darigold 2016-1-31 11:49 PM

[quote]原帖由 [i]stupidsing[/i] 於 2016-1-31 09:29 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435078281&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
微軟人做乜殺埋 python 果份 :smile_14:

學概念有so過學語法
[/quote]

Python有乜概念好學?

form5 2016-2-1 12:37 AM

[quote]原帖由 [i]darigold[/i] 於 2016-1-31 11:48 PM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435088162&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
成功第一次冇Google寫出以下一段︰def order(sentence):
    words = []
    last_word_digit = 0
    last_word_begins = 0
    for i in range(0, len(sentence)):
        if (sentence == ' '):
          ... [/quote]
[code]>>>
>>> ss = "is2 Thi1s T4est 3a"
>>> l = ss.split()
>>> l2 = [ (i,s) for s in l for i in s if i.isdigit() ]
>>> " ".join([ s[1] for s in sorted(l2)])
'Thi1s is2 3a T4est'
>>>[/code]

:lol easy

darigold 2016-2-1 03:28 AM

[quote]原帖由 [i]form5[/i] 於 2016-2-1 12:37 AM 發表 [url=http://computer.discuss.com.hk/redirect.php?goto=findpost&pid=435091816&ptid=24497948][img]http://computer.discuss.com.hk/images/common/back.gif[/img][/url]
:lol easy
[/quote]


再一次完美演繹easy for who的這個概念,easy for you != easy for me。[code]l2 = [ (i,s) for s in l for i in s if i.isdigit() ][/code]呢句點理解?有點似Haskell的list comprehension,又有 d 似Linq ……

[[i] 本帖最後由 darigold 於 2016-2-1 04:01 AM 編輯 [/i]]

stupidsing 2016-2-1 07:25 AM

根本就係 list comprehension. 用 python 自己的寫法。

另聽講  python 個 gc 好特別,係 ref counting + cycle detection...
睇過一次唔係好明點work。

Susan﹏汪汪 2016-2-1 07:28 AM

[quote]原帖由 [i]stupidsing[/i] 於 2016-2-1 07:25 AM 發表 [url=http://www.discuss.com.hk/redirect.php?goto=findpost&pid=435100523&ptid=24497948][img]http://www.discuss.com.hk/images/common/back.gif[/img][/url]
根本就係 list comprehension. 用 python 自己的寫法。

另聽講  python 個 gc 好特別,係 ref counting + cycle detection...
睇過一次唔係好明點work。 [/quote]
好直接



[url=http://www.discuss.com.hk/iphone][img=100,23]http://i.discuss.com.hk/d/images/r10/iphoneD.jpg[/img][/url]

darigold 2016-2-1 12:02 PM

有關Python的討論,我已經fork到另外一個thread

[url=http://computer.discuss.com.hk/viewthread.php?tid=25504719&extra=page]我的Python學習記[/url]
頁: 1 2 3 4 5 6 [7] 8 9 10 11 12 13 14 15 16
查看完整版本: LeetCode