เครื่องมือตรวจสอบพาลินโดรม
พาลินโดรมคือข้อความที่อ่านได้เหมือนกันทั้งในทิศทางปกติและย้อนกลับ “Madam” เป็นตัวอย่างที่เข้าใจง่าย ในขณะที่คำว่า “A man, a plan, a canal: Panama” อาจต้องใช้เวลาสักหน่อยในการระบุ เพราะขึ้นอยู่กับการไม่ให้ความสำคัญกับเครื่องหมายวรรคตอนและช่องว่าง เครื่องมือนี้จะปรับข้อความที่คุณวางไว้ให้อยู่ในรูปแบบมาตรฐาน ได้แก่ การใช้ตัวพิมพ์เล็ก การลบช่องว่างและเครื่องหมายวรรคตอนออก จากนั้นจะตรวจสอบว่าผลลัพธ์เป็นพาลินโดรมจริงหรือไม่ และยังแสดงข้อความที่ถูกกลับด้านไว้เคียงข้างกันอีกด้วย
วิธีการดำเนินการตรวจสอบ
-
1
วางข้อความหรือตัวเลข
คำเดียว วลีหนึ่ง ประโยคยาว หรือข้อความที่ประกอบด้วยตัวเลข
-
2
ได้มีการประยุกต์ใช้กระบวนการปรับให้อยู่ในระดับมาตรฐาน (normalization)
ตัวอักษรจะถูกแปลงเป็นตัวพิมพ์เล็ก และทุกอย่างที่ไม่ใช่ตัวอักษรหรือตัวเลข (ช่องว่าง เครื่องหมายวรรคตอน สัญลักษณ์) จะถูกลบออก ตัวอักษร Unicode ทุกตัวจะถูกเก็บไว้ตามเดิม ดังนั้นเครื่องหมายกำกับเสียงจึงมีผล และรองรับอักษรที่ไม่ใช่ละติน (รวมถึงอักษรไทย)
-
3
เปรียบเทียบการเคลื่อนที่ในทิศทางปกติกับทิศทางกลับ
หากสตริงที่ถูกปรับมาตรฐานแล้วตรงกับสตริงในลักษณะกลับด้านของมัน ก็ถือเป็นพาลินโดรม
-
4
ตรวจสอบผลลัพธ์
เครื่องมือนี้แสดงทั้งสตริงดิบและสตริงที่ถูกปรับมาตรฐานแล้วในรูปแบบกลับด้าน เพื่อการตรวจสอบ
ตัวอย่างพาลินโดรมคลาสสิก
| ข้อความ | ประเภท |
|---|---|
madam |
คำเดียว |
level |
คำเดียว |
racecar |
คำเดียว |
A man, a plan, a canal: Panama |
วลี |
Was it a car or a cat I saw? |
คำถาม |
Never odd or even |
วลี |
12321 |
หมายเลข |
Mr. Owl ate my metal worm |
ประโยคยาว |
หมวดหมู่ของพาลินโดรม
- พาลินโดรมของตัวอักษร ค่าเริ่มต้นคือการใช้ตัวอักษรเดียวกันทั้งในลำดับปกติและย้อนกลับ โดยไม่คำนึงถึงช่องว่าง
- คำที่เป็นพาลินโดรม “I did, did I” – คำแต่ละคำมีโครงสร้างซ้ำกันอย่างสมมาตร
- เซมอร์ดนิลัปส์ (Semordnilaps) คำที่เมื่อสลับลำดับจะกลายเป็นคำใหม่ เช่น “stressed” → “desserts”
- พาลินโดรมเชิงตัวเลข คือลำดับตัวเลขใดๆ ที่อ่านได้เหมือนกันในทั้งสองทิศทาง เช่น 1991 และ 1881
- พาลินโดรมในจีโนม คือลำดับดีเอ็นเอที่บริเวณใดบริเวณหนึ่งมีลำดับเหมือนกันบนสายทั้งสอง (เกี่ยวข้องกับเอนไซม์จำกัดการตัด)
การเขียนโปรแกรมสำหรับการตรวจสอบ
ตรรกะหลักในรูปแบบ pseudocode ดังนี้:
function isPalindrome(s):
normalized = lowercase(s)
normalized = removeAll(normalized, /[^\p{L}\p{N}]/u) // เก็บตัวอักษรและตัวเลข อักษรใดก็ได้
return normalized == reverse(normalized)
นี่คือคำถามเตรียมความพร้อมสำหรับการสัมภาษณ์ตามมาตรฐาน โดยมีรูปแบบต่าง ๆ เพิ่มเติมเพื่อครอบคลุมกรณีพิเศษ เช่น การไม่คำนึงถึงเครื่องหมายรวม Unicode การจัดการสตริงว่าง การรองรับอีโมจิ และการให้ความสำคัญกับกลุ่มกราเฟม
รูปแบบที่พบบ่อยของกฎนี้
- โหมดเข้มงวด: นับตัวอักษรทุกตัว รวมถึงช่องว่างและเครื่องหมายวรรคตอน
"aba"ผ่านเกณฑ์;"a man a plan"ไม่ผ่าน - ใช้เฉพาะตัวอักษรและตัวเลขเท่านั้น: ลบส่วนประกอบอื่นๆ ทั้งหมดออก วิธีนี้เป็นที่นิยมใช้ในการตรวจสอบความเป็นพาลินโดรมแบบไม่เข้มงวด
- การปรับให้เป็นมาตรฐาน Unicode: เครื่องมือบางตัวจะรวมรูปตัวอักษรที่มีเครื่องหมายกำกับเสียง (NFKD) ก่อนเปรียบเทียบ เพื่อให้ “café” ตรงกับ “éfac”
เครื่องมือนี้ใช้วิธีเฉพาะตัวอักษรและตัวเลข: แปลงเป็นตัวพิมพ์เล็ก เก็บตัวอักษรและตัวเลข Unicode ทุกตัว (อักษรใดก็ได้ รวมถึงอักษรไทย) และตัดส่วนที่เหลือออก เครื่องมือนี้ไม่รวมเครื่องหมายกำกับเสียง และไม่มีปุ่ม “โหมดเข้มงวด”
คำถามที่พบบ่อย
ใช่ ตัวอักษรใดๆ ก็ตามล้วนเป็นพาลินโดรมโดยธรรมชาติ เนื่องจากมันเท่ากับตัวเองเมื่อกลับด้าน ส่วนนิยามทางการสอนส่วนใหญ่กำหนดว่าต้องมีตัวอักษรอย่างน้อยสามตัวจึงจะถือว่าน่าสนใจ แต่นิยามทางคณิตศาสตร์กลับยอมรับความยาวเพียง 1 ตัว และแม้กระทั่งความยาว 0 (ซึ่งก็คือสตริงเปล่า)
ให้ถือว่าตัวเลขเหล่านี้เป็นลำดับของตัวเลขเท่านั้น โดย 121, 12321 และ 1991 เป็นเลขพอลินโดรม (palindrome) สำหรับจำนวนเต็มขนาดใหญ่ ควรตรวจสอบรูปแบบการแทนค่าในรูปลำดับตัวเลข อย่าพยายามกลับลำดับตัวเลขด้วยการคำนวณทางคณิตศาสตร์ เพราะจะทำให้หลักศูนย์ที่อยู่ด้านหน้าสูญหายไป
ในภาษาอังกฤษ มีงานเขียนที่มีความซับซ้อนและน่าสนใจอย่างหนึ่งคือ “A Man, a Plan, a Canal: Panama” รวมถึงผลงานต่อยอดหลายชิ้นจากนั้น โดยพอลินดรอสม์ที่สร้างขึ้นด้วยคอมพิวเตอร์ของปีเตอร์ นอร์วิกมีความยาวเกิน 17,000 คำ แม้ว่าจะไม่มีคำใดในจำนวนนั้นที่ถูกต้องตามไวยากรณ์ก็ตาม ส่วนพอลินดรอสม์ที่ประกอบด้วยคำเดียวและยาวที่สุดในภาษาอังกฤษที่ได้รับการยอมรับจากกินเนสส์คือ “tattarrattat” (จากนวนิยาย Ulysses ของจอย์ซ)
ใช่แล้ว ในทุกภาษา คำว่า “saippuakivikauppias” ในภาษาฟินแลนด์ (หมายถึง ผู้ขายหินสบู่ ประกอบด้วยตัวอักษร 19 ตัว) มักถูกยกย่องว่าเป็นคำพันธุ์เดี่ยวแบบพาลินโดรมที่ยาวที่สุดซึ่งพบได้ตามธรรมชาติในทุกภาษา
เครื่องมือที่เกี่ยวข้อง
คู่มืออ้างอิงเครื่องหมายพิสูจน์อักษร
เรียนรู้เครื่องหมายพิสูจน์อักษรแบบดั้งเดิม 14 รายการที่พบบ่อยในข้อความภาษาอังกฤษ พร้อมคำอธิบายและตัวอย่างอย่างง่าย
เครื่องมือสร้างรายการ Spelling Bee
สร้างรายการคำศัพท์สะกดภาษาอังกฤษที่สลับลำดับตามระดับ ตั้งแต่ระดับชั้นประถมปีที่ 1 จนถึงรอบ Bee ที่ยาก รายการคำในตัวใช้ฟรีสำหรับฝึกฝน
เครื่องตรวจจับถ้อยคำที่เบื่อหู
วางงานเขียนแล้วเครื่องมือตรวจจับจะเทียบกับรายการวลีซ้ำซากภาษาอังกฤษทั่วไป และรายงานว่าแต่ละวลีปรากฏกี่ครั้ง
เครื่องสร้างคำถามแบบนี้หรือแบบนั้น
สับสำรับคำถามแบบนี้หรือแบบนั้นสำหรับการละลายพฤติกรรม เดต เกมวันเกิด และการวอร์มอัพทีม เลือกจำนวนที่ต้องการแล้วเริ่มถามได้เลย
ภาษาอังกฤษเป็น Pig Latin
แปลภาษาอังกฤษเป็น Pig Latin และกลับ ใช้การย้ายกลุ่มพยัญชนะคลาสสิกบวกกฎเติมท้าย -ay
เครื่องมือสร้างเทมเพลตประกาศการเสียชีวิต
จัดเรียงรายละเอียดประกาศการเสียชีวิตที่ครอบครัวให้มาเป็นร่างข้อความธรรมดาที่แก้ไขได้ แล้วคัดลอก พิมพ์ หรือบันทึกไว้ในเครื่องหลังตรวจทาน
เครื่องมือนี้มีให้บริการในภาษาอื่น
- Pemeriksa Palindrom [ID]
- Verificador de Palíndromos [PT]
- Palindrom-Prüfer [DE]
- 回文チェッカー [JA]
- 회문 검사기 [KO]
- مُتحقق السلسلة المتقابلة [AR]
- Sprawdzanie palindromu [PL]
- Palindromskannare [SV]
- Kiểm tra Palindrome [VI]
- Verificador de Palíndromos [ES]
- Vérificateur de palindrome [FR]
- Palindroomcontrole [NL]
- Palindrome Checker [EN]
- Controllore di Palindromi [IT]
- Проверитель палиндромов [RU]
- Palindrom Denetleyici [TR]
- 回文检查器 [ZH]