当前位置:网站首页>One question per day 2047 Number of valid words in the sentence
One question per day 2047 Number of valid words in the sentence
2022-07-05 05:42:00 【A big pigeon】
Judge the number of effective words in the sentence .
The topic is relatively simple , Split sentences into words , Then judge whether the word is valid .
however “ It works ” The conditions are a little cumbersome :
If one token At the same time, the following conditions are met , I think this is token Is a valid word :
1. No numbers
2. At most one A hyphen '-' . If there is , There should be lowercase letters on both sides of the hyphen ("a-b" Is a valid word , but "-ab" and "ab-" Not a valid word ).
3. At most one Punctuation . If there is , Punctuation marks should be located at token Of At the end of .
Official explanation :
class Solution:
def countValidWords(self, sentence: str) -> int:
def valid(s):
hasHyphens = False
for i, ch in enumerate(s):
if ch.isdigit() or ch in "!.," and i < len(s)-1:
return False
if ch == '-':
if hasHyphens or i==0 or i== len(s)-1 or not s[i-1].islower() or not s[i+1].islower():
return False
hasHyphens = True
return True
return sum(valid(s) for s in sentence.split())
His writing :
I haven't seen it before , Easy to leak conditions .
class Solution:
def countValidWords(self, sentence: str) -> int:
tokens = sentence.split()
count = 0
print(tokens)
for token in tokens:
istoken = True
hasHyphens = False
for i,x in enumerate(token):
if x.isdigit():
istoken = False
break
if x in "!.," and i != len(token)-1:
istoken = False
break
if x == '-':
if hasHyphens or i==0 or i== len(token)-1 or not token[i-1].islower() or not token[i+1].islower():
istoken = False
break
hasHyphens = True
if istoken and token:
count += 1
return countAdd :
Three ways to simplify code learned :
One 、enumerate(iterable,start=0) Returns an enumeration object , It contains a count value and iteration object iterable Generated value .
This method is equivalent to :
def enumerate(sequence, start=0):
n = start
for elem in sequence:
yield n, elem
n += 1Built in functions — Python 3.10.2 file
Two 、sum(iterable, /, start=0) Also can be [True,True,False] So boolean type sums , Return to it True Number .
from start Start from left to right iterable And returns the total value . iterable The term of is usually a number , and start Value is not allowed to be a string .
3、 ... and 、 use in Instead of multiple == or == or ==
Such as : ch in "!.,"
x in [1,3,5],
边栏推荐
- Typical use cases for knapsacks, queues, and stacks
- Analysis of backdoor vulnerability in remote code execution penetration test / / phpstudy of national game title of national secondary vocational network security B module
- Cluster script of data warehouse project
- Fried chicken nuggets and fifa22
- 剑指 Offer 05. 替换空格
- sync.Mutex源码解读
- 用STM32点个灯
- YOLOv5-Shufflenetv2
- A problem and solution of recording QT memory leakage
- Control unit
猜你喜欢
随机推荐
Light a light with stm32
Software test -- 0 sequence
R language [import and export of dataset]
[jailhouse article] look mum, no VM exits
常见的最优化方法
卷积神经网络——卷积层
剑指 Offer 53 - II. 0~n-1中缺失的数字
Educational Codeforces Round 116 (Rated for Div. 2) E. Arena
Add level control and logger level control of Solon logging plug-in
Palindrome (csp-s-2021-palin) solution
注解与反射
After setting up the database and website When you open the app for testing, it shows that the server is being maintained
Codeforces Round #716 (Div. 2) D. Cut and Stick
Codeforces Round #732 (Div. 2) D. AquaMoon and Chess
How can the Solon framework easily obtain the response time of each request?
Pointnet++ learning
全排列的代码 (递归写法)
Common optimization methods
In this indifferent world, light crying
[jailhouse article] performance measurements for hypervisors on embedded ARM processors








