本文介绍了文字颠倒的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
如何设计一个接受小写字母字符串并将该字符串颠倒生成的程序?
因此,如果我键入home
我把ǝɯoɥ
倒过来了。
我试着在书中寻找入门信息,但一无所获。
推荐答案
尝试此方法,有点暴力,但对于大写、小写和数字字符非常有效-所有其他字符都按原样显示:
(define upside-map '#hash(
(#a . #ɐ) (# . #q) (#c . #ɔ) (#d . #p) (#e . #ǝ) (#f . #ɟ)
(#g . #ƃ) (#h . #ɥ) (#i . #ı) (#j . #ɾ) (#k . #ʞ) (#l . #ן)
(#m . #ɯ) (#
. #u) (#o . #o) (#p . #d) (#q . #) (#
. #ɹ)
(#s . #s) (# . #ʇ) (#u . #
) (#v . #ʌ) (#w . #ʍ) (#x . #x)
(#y . #ʎ) (#z . #z) (#A . #∀) (#B . #𐐒) (#C . #Ɔ) (#D . #◖)
(#E . #Ǝ) (#F . #Ⅎ) (#G . #⅁) (#H . #H) (#I . #I) (#J . #s)
(#K . #⋊) (#L . #˥) (#M . #W) (#N . #N) (#O . #O) (#P . #Ԁ)
(#Q . #Ό) (#R . #ᴚ) (#S . #S) (#T . #⊥) (#U . #∩) (#V . #Λ)
(#W . #M) (#X . #X) (#Y . #⅄) (# . #) (# . # ) (#1 . #Ɩ)
(#2 . #ᄅ) (#3 . #Ɛ) (#4 . #ㄣ) (#5 . #ϛ) (#6 . #9) (#7 . #ㄥ)
(#8 . #8) (#9 . #6)))
(define (flip-string str)
(list->string
(map (lambda (c)
(hash-ref upside-map c (const c)))
(reverse (string->list str)))))
例如:
(flip-string "Hello World")
=> "pןɹoM oןןǝH"
作为参考,我使用了取自Wikipedia的table转换。上面的解决方案有一点问题:我无法使其适用于Unicode值为#u10412
的𐐒
字符(翻转的B
),因为它不适合16位Unicode字符,因此无法表示。我不知道球拍不支持编码要求超过16位的字符。
这篇关于文字颠倒的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!