Olùyí Ọ̀rọ̀ Padà Sẹ́yìn Ọ̀fẹ́

Yí ọ̀rọ̀ padà sẹ́yìn lẹ́tà-sí-lẹ́tà, yí ìtòlẹ́sẹẹsẹ ọ̀rọ̀ padà, yí ìlà kọ̀ọ̀kan padà, tàbí yí ìtòlẹ́sẹẹsẹ ìlà padà. Ó ní ìdámọ̀ palindrome.

Ó ń ṣiṣẹ́ láìsí ìsopọ̀ ní kété tí a bá kó wọlé
Kì í ṣe palindrome
Tí a yípadà
!dlroW ,olleH
13 àwọn àmì2 àwọn ọ̀rọ̀1 ìlà

Bí Ó Ṣe Ń Ṣiṣẹ́

Irinṣẹ́ yìí ń yí ọ̀rọ̀ padà pátápátá nínú aṣàwákiri rẹ láìsí ìgbẹ́kẹ̀lé lórí ohunkóhun mìíràn — ìlànà ìpìlẹ̀ jẹ́ JavaScript lásán, pẹ̀lú kúlẹ̀kúlẹ̀ kan tí ó ṣe pàtàkì: ó ń lo API Intl.Segmenter aṣàwákiri tí a kọ́ sínú rẹ̀ (níbi tí ó bá wà) láti pín ọ̀rọ̀ sí àwọn àkópọ̀ grapheme kí ó tó yí padà, nítorí náà àwọn àmì codepoint-púpọ̀ bí àwọn ìtẹ̀síwájú emoji (👨‍👩‍👧) àti àwọn lẹ́tà tí ó ní ààmì (é) ń wà pípé dípò kí wọ́n ya kúrò lára ara wọn.

  1. 1
    Yíyan ipò
    Ipò ìyípadà mẹ́fà ń wà: yí padà àmì kọ̀ọ̀kan, yí padà àwọn lẹ́tà nínú ọ̀rọ̀ kọ̀ọ̀kan (tí ó ń pa ìtòlẹ́sẹẹsẹ ọ̀rọ̀ mọ́), yí padà ìtòlẹ́sẹẹsẹ ọ̀rọ̀, yí padà àwọn àmì fún ìlà kọ̀ọ̀kan, yí padà ìtòlẹ́sẹẹsẹ ìlà, tàbí yí gbogbo ọ̀wọ́ ọ̀rọ̀ náà padà sí orí-sí-ìsàlẹ̀. Ipò tí a yàn ni a fi sílo lẹ́sẹ̀kẹsẹ̀ bí o ṣe ń kọ — kò sí ìgbésẹ̀ fífi ránṣẹ́ tí ó nílò.
  2. 2
    Ìpín tí ó mọ grapheme nípasẹ̀ Intl.Segmenter
    Kí a tó yí àwọn àmì padà, a ń pín ọ̀rọ̀ náà ní lílo Intl.Segmenter pẹ̀lú granularity tí a ṣètò sí 'grapheme'. Èyí ń fún àwọn àmì tí ènìyàn ń rí dípò àwọn codepoint Unicode gan-an, nítorí náà emoji àsíá kan tàbí ìdì lẹ́tà-ìpìlẹ̀-pọ̀-mọ́-ààmì kan wà papọ̀ nígbà tí a bá yí àtòjọ náà padà. Àwọn aṣàwákiri tí kò ní Intl.Segmenter ń padà sí ìtẹ̀síwájú olùyíká-spread.
  3. 3
    Ipò orí-sí-ìsàlẹ̀ ń lo tábìlì ìtọ́ka kan
    Ipò 'orí-sí-ìsàlẹ̀' ń fi àmì kọ̀ọ̀kan wé tábìlì ìtọ́ka àkópọ̀-100 tí a dá kalẹ̀ ti àwọn àwòrán Unicode tí ó jọra (fún àpẹẹrẹ, 'e' di 'ǝ', '?' di '¿'), kí ó sì yí àtòjọ grapheme náà padà nítorí náà àbájáde náà ń kà dáadáa nígbà tí a bá yí i padà ní ìwọ̀n 180 gan-an.
  4. 4
    Ìtọjade àti ìdámọ̀ palindrome
    Àbájáde tí a yí padà ń yí padà láàyè nípasẹ̀ hook useMemo React. Ní ipò ìyípadà-àmì, irinṣẹ́ náà tún ń ṣàyẹ̀wò bóyá ìbáwọlé ìpilẹ̀ṣẹ̀ jẹ́ palindrome, ní lílo ìdíwọ́ lẹ́tà/nọ́mbà tí ó mọ Unicode (\p{L}\p{N}) kí ó tó fiwé. Títẹ̀ Dàkọ ń kọ ìtọjade náà sí clipboard nípasẹ̀ API navigator.clipboard déédéé.

Àwọn Irinṣẹ Tó Jọra

Àwọn Ìbéèrè Tí A Máa Ń Béèrè