Open jiravatt opened 4 years ago
@jiravatt ขอบคุณมากเลยครับ จริงก็อยากทำหลายข้อเหมือนกัน แต่น่าจะต้อง modify codebase เยอะเลย
แล้วอยากรู้ว่าตัวโจทย์นี่ยากหรือง่ายไปไหมครับ
ผมว่าโอเคนะครับ ไม่ยากเกินไป แต่ก็ไม่ง่าย สำหรับผมที่อ่านตอนแรก ความรู้สึกคือเหมือนจะมีอะไร เลยมานั่งทด ๆ เขียน ๆ ดู ก็เลยเห็น pattern ได้ไม่ยาก ส่วนตอน implement ก็อาจจะติดนิดหน่อยแต่ก็ไม่ลำบากอะไรมากนักครับ :)
ผมยังงงๆ โจทย์อยู่ ถ้าสมมุติ costToMakeEqual("1011", "0101") ข้อนี้ต้องได้ 3 ใช่ไหมครับ เลือกทำ operation ที่ toggle bit เอาใช่หรือไหมครับ
ผมยังงงๆ โจทย์อยู่ ถ้าสมมุติ costToMakeEqual("1011", "0101") ข้อนี้ต้องได้ 3 ใช่ไหมครับ เลือกทำ operation ที่ toggle bit เอาใช่หรือไหมครับ
ได้ 2 ครับ
10 -> 01 (สลับ) + 1 -> 0 (Toggle) + 1 (เหมือนเดิม) = 0101 (Cost = 1 + 1 = 2)
ผมยังงงๆ โจทย์อยู่ ถ้าสมมุติ costToMakeEqual("1011", "0101") ข้อนี้ต้องได้ 3 ใช่ไหมครับ เลือกทำ operation ที่ toggle bit เอาใช่หรือไหมครับ
ได้ 2 ครับ
10 -> 01 (สลับ) + 1 -> 0 (Toggle) + 1 (เหมือนเดิม) = 0101 (Cost = 1 + 1 = 2)
อ๋อ หมายถึงในสามารถใช้ operation ทั้ง swap และ toggle ภายในโจทย์เดียวได้ใช่ไหมครับ ไม่ใช่เลือกทำอันไหนอันหนึ่ง
เท่าที่ผมเข้าใจคือใช่ครับ (ใช้ทั้งคู่ในข้อเดียวกันได้) ใช้ swap ตอนที่ควรใช้ และใช้ toggle ตอนที่ควรใช้ครับ :)
ผ่านแล้วครับ ขอบคุณครับ ฮ่าๆ
แหะ เพิ่งเห็นว่าใช้ได้ทั้งสอง operation นั่งงมโค้ดทั้งวันเลย :V
ปล.ข้อนี้น่าจะยกตัวอย่าง Test Case ที่ใช้ทั้ง 2 operation นะครับ
@namirinz ขอบคุณสำหรับ Feedback ครับเดี๋ยวจะไปปรับแก้นะครับ
เหมือนเดิมครับ พยายามจะรวบรวมข้อผิดพลาดและคำถามเอาไว้ในโพสต์นี้นะครับ
นอกจากนั้นไม่เจออะไรครับ เป็นโจทย์ที่ดีข้อนึงเลย ถ้าเป็นไปได้ใน lesson นี้อยากให้มีมากกว่า 1 ข้อนะครับ จะได้เห็นว่าแต่ละข้อใช้ approach เฉพาะตัวที่แตกต่างกัน ซึ่งน่าจะทำให้เห็นภาพความเป็น ad hoc มากขึ้นครับ ส่วนเฉลยก็มี comment ทำให้คิดและทำความเข้าใจตามไปได้โดยง่ายเช่นเดิมครับ
รอข้อต่อไปนะครับ :)