当前位置:网站首页>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 count
Add :
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 += 1
Built 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],
边栏推荐
- Gbase database helps the development of digital finance in the Bay Area
- Zzulioj 1673: b: clever characters???
- Brief introduction to tcp/ip protocol stack
- A misunderstanding about the console window
- PC寄存器
- A new micro ORM open source framework
- EOJ 2021.10 E. XOR tree
- 26、 File system API (device sharing between applications; directory and file API)
- A problem and solution of recording QT memory leakage
- SAP-修改系统表数据的方法
猜你喜欢
Pointnet++学习
Wazuh开源主机安全解决方案的简介与使用体验
Fried chicken nuggets and fifa22
中职网络安全技能竞赛——广西区赛中间件渗透测试教程文章
Gbase database helps the development of digital finance in the Bay Area
Sword finger offer 09 Implementing queues with two stacks
利用HashMap实现简单缓存
AtCoder Grand Contest 013 E - Placing Squares
CF1634E Fair Share
F - Two Exam(AtCoder Beginner Contest 238)
随机推荐
读者写者模型
Remote upgrade afraid of cutting beard? Explain FOTA safety upgrade in detail
Implement an iterative stack
Acwing 4300. Two operations
Warning using room database: schema export directory is not provided to the annotation processor so we cannot export
A problem and solution of recording QT memory leakage
【实战技能】非技术背景经理的技术管理
The number of enclaves
Zheng Qing 21 ACM is fun. (3) part of the problem solution and summary
剑指 Offer 09. 用两个栈实现队列
Acwing 4301. Truncated sequence
“磐云杯”中职网络安全技能大赛A模块新题
2020ccpc Qinhuangdao J - Kingdom's power
Mysql database (I)
Scope of inline symbol
Software test -- 0 sequence
Sword finger offer 53 - ii Missing numbers from 0 to n-1
二十六、文件系统API(设备在应用间的共享;目录和文件API)
【Jailhouse 文章】Performance measurements for hypervisors on embedded ARM processors
Corridor and bridge distribution (csp-s-2021-t1) popular problem solution