为什么下面的Clojure没有检测到回文?

del*_*ber 3 string comparison clojure palindrome

我只是想转换成一个字符串,并反过来比较

(defn is-palindrome? [num]
  (= (str num) (reverse (str num))))
Run Code Online (Sandbox Code Playgroud)

就像是

(is-palindrome 1221)
Run Code Online (Sandbox Code Playgroud)

是假的

Ósc*_*pez 9

试试这个:

(defn is-palindrome? [num]
  (= (str num) (apply str (reverse (str num)))))
Run Code Online (Sandbox Code Playgroud)

在您的代码中,表达式(reverse (str 1221))返回字符列表(\1 \2 \2 \1),需要将其转换回字符串以使比较起作用.或者,您可以将两个数字转换为字符列表并执行列表比较:

(defn is-palindrome? [num]
  (= (seq (str num)) (reverse (str num))))
Run Code Online (Sandbox Code Playgroud)


swc*_*cai 6

(defn palindrome? [num]
  (= (seq (str num)) (clojure.string/reverse (str num))))
Run Code Online (Sandbox Code Playgroud)