CAT專屬題 合法識別符號 Python3

2021-10-19 08:14:51 字數 1070 閱讀 2277

合法識別符號 是 lintcode(詳見 lintcode介紹)所提供的一道 cat 評測專屬題目,現在我對python3的實現做以簡單分析,如有不妥之處,歡迎指正。

和變數命名有點類似,現在對合法識別符號的命名做出以下規定:

識別符號只能包含大小寫字母、數字、以及下劃線。

識別符號不能以數字開頭。

識別符號若以字母開頭,必須為大寫字母。

識別符號不能包含其他字元(空格也不行!)。

題目要求若輸入的識別符號為合法識別符號(符合以上要求),則需要返回 true ,否則返回 false

輸入: 「abaa」 ——返回false

輸入:「1abc」 ——返回false

輸入:「_xyz」 ——返回true

我們可以利用python處理字串的函式:

isupper() 和 islower() 進行字母大小寫的判斷;

可以使用 list() 函式把待處理的字串列表化,隨後進行遍歷,從而判斷其中是否含有非法字元。

def

legalidentifiers

(string)

:# 此處首先排除字串為空串的情況

if string =="":

return

false

# 將字串列表化

string =

list

(string)

# 判斷首位字元為小寫或者為數字

if string[0]

.islower(

)or string[0]

.isdigit():

return

false

for i in string:

# 這裡分別判斷了字元為字母或數字,或下劃線的情況

if i.isalnum(

)or i ==

"_":

pass

# 如果不滿足,即出現非法字元

else

:return

false

# 在以上條件均滿足的情況下,這當然是合法識別符號

return

true

合法識別符號

描述 給定乙個不包含空白符的字串,請判斷是否是c語言合法的識別符號號 注 題目保證這些字串一定不是c語言的保留字 c語言識別符號要求 1.非保留字 2.只包含字母 數字及下劃線 3.不以數字開頭。格式 輸入格式 一行,包含乙個字串,字串中不包含任何空白字元,且長度不大於20。輸出格式 一行,如果它是...

C語言合法識別符號

輸入乙個字串,判斷其是否是c的合法識別符號。輸入資料報含多個測試例項,資料的第一行是乙個整數n,表示測試例項的個數,然後是n行輸入資料,每行是乙個長度不超過50的字串。對於每組輸入資料,輸出一行。如果輸入資料是c的合法識別符號,則輸出 yes 否則,輸出 no 3 12ajf fi8x a ff a...

hdu C語言合法識別符號

problem description 輸入乙個字串,判斷其是否是c的合法識別符號。input 輸入資料報含多個測試例項,資料的第一行是乙個整數n,表示測試例項的個數,然後是n行輸入資料,每行是乙個長度不超過50的字串。output 對於每組輸入資料,輸出一行。如果輸入資料是c的合法識別符號,則輸出...