Tag: strings

16 รายการ

Blog

สัตว์การ์ตูนจับคู่รูปทรงสีต่าง ๆ สองแถว วาฬถือสมุดสองเล่ม แมวถือสมุดกับกล่อง ลิงปักธงตำแหน่งแรก และนกแก้วนับคู่ โดยมีสิงโตทะเลบารอนสวมเสื้อโค้ตเป็นกรรมการ
leetcodepythonalgorithms

LeetCode #205 Isomorphic Strings: วาฬ แมว ลิง นกแก้ว ประชันสมุดแปลงอักษร

เข้าใจสตริงที่มีรูปแบบเดียวกันผ่านสัตว์การ์ตูน 4 วิธี พร้อมโค้ด 5 แบบ เทสต์ และ benchmark ที่รันจริงบนเครื่องนี้

น้องกาย
งูการ์ตูนสีเขียวใช้กรรไกรตัดหัวป้ายรหัสจากม้วนกระดาษอย่างระวัง ขณะที่เครื่องทำลายเอกสารที่มีป้ายเตือนข้าง ๆ ฉีกป้ายรหัสจนขาดกระจาย
pythonstringsremoveprefix

ล้างรหัสงานด้วย Python removeprefix และ removesuffix ให้ข้อมูลไม่แหว่ง

ตัด INV- หน้าเลขคำสั่งซื้อและ .csv ท้ายชื่อไฟล์ให้ตรงจุด พร้อมเทสต์จับบั๊ก lstrip และ rstrip ที่มักเผลอลบเนื้อข้อมูลไปด้วย

น้องกาย
อิกัวนาต้นฉบับวัดรางชิ้นงานก่อนเปลี่ยนก้อนสั้นเป็นก้อนยาวในถาดขนาดพอดี
zigmemorystrings

Zig std.mem.replace: คำนวณขนาดก่อนแทนข้อความโดยไม่เดา buffer

ใช้ replacementSize คู่กับ replace เพื่อจองปลายทางพอดี ตรวจจำนวนครั้ง และกัน output โตเกินเพดาน

พี่โชว์
กระรอกดินต้นฉบับรับเมล็ดทีละเมล็ดจากสายพานและหยุดเมื่อเต็มตะกร้า
gostringsiterator

Go strings.FieldsFuncSeq: แยก token แบบ iterator ไม่ต้องสร้าง slice ทั้งก้อน

ใช้ FieldsFuncSeq เดิน token ทีละค่า หยุดได้เร็ว และคัดลอกเฉพาะข้อมูลที่ต้องเก็บ พร้อม Go test

พี่โชว์
นากต้นฉบับป้อนชิ้นสีต่างกันเข้าเครื่องแม่พิมพ์ที่ปล่อยแถบงานเรียงตัวสม่ำเสมอออกมา
javastringsformatting

Java String.formatted: ให้ template อยู่หน้าค่าที่นำมาเติม

ใช้ String.formatted สร้างข้อความที่อ่านจากซ้ายไปขวา พร้อม Locale, validation, logging และข้อห้ามนำ user input มาเป็น format string

พี่โชว์
นากกายต้นฉบับกำลังลากเส้นทางผ่านกระเบื้องตัวอักษรโดยวางและเก็บหมุดย้อนกลับทุกก้าว
leetcodepythonbacktracking

LeetCode 79 Word Search: backtracking ที่คืนสถานะกระดานทุกทางออก

เทียบ visited set, in-place marking และ frequency pruning พร้อม complexity, edge cases, decision table และ Python tests

พี่โชว์
กระรอกดินต้นฉบับค่อย ๆ ดึงแถบกระดาษที่แบ่งเป็นท่อนโดยเก็บหมุดคั่นไว้ปลายแต่ละท่อน
gogolangstrings

Go strings.SplitAfterSeq: แบ่งข้อความแบบ iterator โดยเก็บตัวคั่นไว้

ใช้ SplitAfterSeq อ่าน record ทีละส่วนโดยไม่สร้าง slice ทั้งก้อน พร้อมทดสอบ empty separator, single-use iterator และ ownership ของ substring

พี่โชว์
นากกายกำลังจัดริบบิ้นหลายเส้นให้ต้นริบบิ้นที่เหมือนกันซ้อนตรงกัน
leetcodepythonstrings

LeetCode 14 Longest Common Prefix: หดคำตั้งต้นจนทุกคำยอมรับ

เทียบ horizontal shrink, vertical scan และ sort first-last พร้อม complexity, edge cases, decision table และ Python tests

พี่โชว์
นากแม่น้ำสีมิ้นต์ต้นฉบับกำลังต่อแผ่นคำไร้อักษรหลายขนาดให้ปิดช่องทางเดินพอดีโดยไม่เหลือรอยแยก
leetcodealgorithmsdynamic-programming

LeetCode #139 Word Break: ต่อคำให้เต็มสตริงโดยไม่หลงทางซ้ำ

เทียบ DP, memoized DFS, BFS และ trie พร้อม decision table และ Python unittest ที่รันจริง

พี่โชว์
งูต้นฉบับตรวจลูกปัดบนรางจากซ้ายและขวาเข้าหากัน โดยลูกปัดเครื่องหมายถูกจับคู่แบบสมมาตร
leetcodepythontwo-pointers

LeetCode #125 Valid Palindrome: กรองก่อนหรือเดินสองด้าน แบบไหนเหมาะกว่า

เทียบ normalize-and-reverse, two pointers และ deque สำหรับตรวจ palindrome พร้อม complexity, Unicode caveat และ unittest

พี่โชว์
งูต้นฉบับเลื่อนกรอบหน้าต่างให้แคบลงรอบลูกปัดสีที่ต้องมีครบ รวมลูกปัดสีซ้ำสองเม็ด
leetcodepythonstrings

LeetCode #76 Minimum Window Substring: Sliding Window ที่นับ Duplicate ถูก

เทียบ brute force กับ sliding window พร้อม invariant ของ formed/required, complexity, edge cases และ unittest

พี่โชว์
งูต้นฉบับเลื่อนกระจกสองด้านจากจุดกึ่งกลางของแถวลูกปัดเพื่อหาช่วงสมมาตรยาวที่สุด
leetcodepythonstrings

LeetCode #5 Longest Palindromic Substring: ขยายจากกลาง, DP หรือ Manacher

เทียบสามวิธีหาพาลินโดรมยาวสุด พร้อม complexity, edge cases, decision table และ unittest ที่รันจริง

พี่โชว์
นากกายต้นฉบับแยกริบบิ้นข้อความยาวออกเป็นแถบสั้นหลายบรรทัดบนโต๊ะมิ้นต์
javastringsstreams

Java String.lines: อ่านข้อความหลายบรรทัดแบบ Stream โดยไม่ทิ้งท้ายด้วยช่องว่างปลอม

ใช้ lines แทน regex split เมื่อต้องประมวลผลบรรทัดตามนิยาม line terminator ของ Java

พี่โชว์
นากกายจัดไพ่ตัวอักษรเป็นกลุ่มสีเดียวกันบนโต๊ะมิ้นต์
leetcodealgorithmshashmap

LeetCode #49 Group Anagrams: จัดกลุ่มคำที่ตัวอักษรเหมือนกัน

เทียบ sorted-key, count-tuple key และคู่มือเลือกใช้ พร้อมเทสต์ python รันได้

น้องกาย
ปูต้นฉบับกำลังใช้วงเวียนวัดริบบิ้นสีเขียวที่ถูกตัดเป็นช่วงบนโต๊ะสว่าง
ruststringsperformance

Rust 1.98: substr_range คืนช่วง byte ของ slice โดยไม่ค้นซ้ำ

ทำความเข้าใจ str::substr_range สำหรับเชื่อม string slice กลับสู่ตำแหน่งต้นฉบับ พร้อมข้อจำกัดเรื่อง provenance และ UTF-8

พี่โชว์
นากกายสีมิ้นต์เลื่อนกรอบหน้าต่างบนแถบตัวอักษรให้ไม่มีตัวซ้ำบนโต๊ะมิ้นต์
leetcodealgorithmssliding-window

LeetCode #3 Longest Substring Without Repeating Characters: หน้าต่างเลื่อน

เทียบ brute force, set ขยาย/หด, และดัชนีล่าสุดของตัวอักษร พร้อมตารางเลือกวิธีและ unittest

น้องกาย