2019 10 22 回文數 正規表示式匹配

2021-09-28 20:49:38 字數 2295 閱讀 8210

【題目一】:判斷乙個整數是否是回文數。回文數是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數。

示例 1:

輸入: 121

輸出: true

示例 2:

輸入: -121

輸出: false

解釋: 從左向右讀, 為 -121 。 從右向左讀, 為 121- 。因此它不是乙個回文數。

示例 3:

輸入: 10

輸出: false

解釋: 從右向左讀, 為 01 。因此它不是乙個回文數。

#!/bin/bash

#回文數

#author:yzt_2019_10_22

flag_1=`echo "$1"|rev` #rev獲取反向獲取字串

flag_2=$1

if [ $flag_1 = $flag_2 ];then

echo "true"

else

echo "flase"

fi

指令碼效果:

[root@localhost leetcode]# ./huiwenshu.sh 1009

flase

[root@localhost leetcode]# ./huiwenshu.sh 1001

true

[root@localhost leetcode]# ./huiwenshu.sh 1001001

true

【題目二】:

給你乙個字串 s 和乙個字元規律 p,請你來實現乙個支援 '.' 和 '*' 的正規表示式匹配。

'.' 匹配任意單個字元

'*' 匹配零個或多個前面的那乙個元素

所謂匹配,是要涵蓋 整個 字串 s的,而不是部分字串。

說明:s 可能為空,且只包含從 a-z 的小寫字母。

p 可能為空,且只包含從 a-z 的小寫字母,以及字元 . 和 *。

示例 1:

輸入:s = "aa"

p = "a"

輸出: false

解釋: "a" 無法匹配 "aa" 整個字串。

示例 2:

輸入:s = "aa"

p = "a*"

輸出: true

解釋: 因為 '*' 代表可以匹配零個或多個前面的那乙個元素, 在這裡前面的元素就是 'a'。因此,字串 "aa" 可被視為 'a' 重複了一次。

示例 3:

輸入:s = "ab"

p = ".*"

輸出: true

解釋: ".*" 表示可匹配零個或多個('*')任意字元('.')。

示例 4:

輸入:s = "aab"

p = "c*a*b"

輸出: true

解釋: 因為 '*' 表示零個或多個,這裡 'c' 為 0 個, 'a' 被重複一次。因此可以匹配字串 "aab"。

示例 5:

輸入:s = "mississippi"

p = "mis*is*p*."

輸出: false

#!/bin/bash

#正規表示式匹配

#author:yzt_2019_10_22

#read -t 10 -p "請輸入乙個字串s = " aa

read -t 20 -p "請輸入乙個字元規律p = " p

result=`echo "$aa"|egrep -w "$p"` #egrep -w 是用於匹配完整的字串,也可理解為精確匹配

if [ $result ];then

echo "true"

else

echo "false"

fi

指令碼效果:

[root@localhost leetcode]# ./zhengzebiaodashipipei.sh

請輸入乙個字串s = aa

請輸入乙個字元規律p = a

false

[root@localhost leetcode]# ./zhengzebiaodashipipei.sh

請輸入乙個字串s = aa

請輸入乙個字元規律p = a*

true

[root@localhost leetcode]# ./zhengzebiaodashipipei.sh

請輸入乙個字串s = aab

請輸入乙個字元規律p = c*a*b

true

52 回文平方數

52 回文平方數 問題描述 回文數是指從左向右念和從右向左唸都一樣的數。如12321就是乙個典型的回文數。給定乙個進製b 2 輸入說明 共一行,乙個單獨的整數b b用十進位制表示,比如18 輸出說明 每行兩個數字,第二個數是第乙個數的平方,且第二個數是回文數。注意 輸出時,這兩個數都應該以b進製表示...

1282 回文數猜想

problem description 乙個正整數,如果從左向右讀 稱之為正序數 和從右向左讀 稱之為倒序數 是一樣的,這樣的數就叫回文數。任取乙個正整數,如果不是回文數,將該數與他的倒序數相加,若其和不是回文數,則重複上述步驟,一直到獲得回文數為止。例如 68變成154 68 86 再變成605 ...

1107 回文數猜想

description 乙個正整數,如果從左向右讀 稱之為正序數 和從右向左讀 稱之為倒序數 是一樣的,這樣的數就叫回文數。任取乙個正整數,如果不是回文數,將該數與他的倒序數相加,若其和不是回文數,則重複上述步驟,一直到獲得回文數為止。例如 68變成154 68 86 再變成605 154 451 ...