Browse Source

feat: punctuation pairs check demo

master
Dnomd343 2 years ago
parent
commit
41ab892ee8
  1. 42
      src/punctuation/check.py

42
src/punctuation/check.py

@ -1,12 +1,48 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
punctuationPairs = [
target = [
('', ''), ('', ''),
('', ''), ('', ''),
('', ''), ('', ''),
('', ''), ('', ''),
] ]
print(target[0])
def isLeftPunctuation(char: str) -> bool:
for punctuationPair in punctuationPairs:
if char == punctuationPair[0]:
return True
return False
def isRightPunctuation(char: str) -> bool:
for punctuationPair in punctuationPairs:
if char == punctuationPair[1]:
return True
return False
def getLeftPunctuation(char: str) -> str:
for punctuationPair in punctuationPairs:
if char == punctuationPair[1]:
return punctuationPair[0]
return '' # no match
def pairsCheck(sentence: str) -> bool:
punctuationStack = []
sentence = list(sentence)
for i in range(0, len(sentence)):
char = sentence[i]
if isLeftPunctuation(char):
punctuationStack.append(char)
elif isRightPunctuation(char):
if punctuationStack.pop() != getLeftPunctuation(char):
return False
return len(punctuationStack) == 0
print(
pairsCheck('测试“这个是OK的《2333》没错‘’”嗯嗯')
)

Loading…
Cancel
Save