51 lines
772 B
Plaintext
51 lines
772 B
Plaintext
#!/usr/bin/env rune
|
|
|
|
? def isPalindrome(string :String) {
|
|
> def upper := string.toUpperCase()
|
|
> def last := upper.size() - 1
|
|
> for i => c ? (upper[last - i] != c) in upper(0, upper.size() // 2) {
|
|
> return false
|
|
> }
|
|
> return true
|
|
> }
|
|
|
|
? isPalindrome("")
|
|
# value: true
|
|
|
|
? isPalindrome("a")
|
|
# value: true
|
|
|
|
? isPalindrome("aa")
|
|
# value: true
|
|
|
|
? isPalindrome("baa")
|
|
# value: false
|
|
|
|
? isPalindrome("baab")
|
|
# value: true
|
|
|
|
? isPalindrome("ba_ab")
|
|
# value: true
|
|
|
|
? isPalindrome("ba_ ab")
|
|
# value: false
|
|
|
|
? isPalindrome("ba _ ab")
|
|
# value: true
|
|
|
|
? isPalindrome("ab"*2)
|
|
# value: false
|
|
|
|
? def x := "ab" * 2**15; null
|
|
|
|
? x.size()
|
|
# value: 65536
|
|
|
|
? def xreversed := "ba" * 2**15; null
|
|
|
|
? isPalindrome(x + xreversed)
|
|
# value: true
|
|
|
|
? (x + xreversed).size()
|
|
# value: 131072
|