当前位置:网站首页>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],
边栏推荐
- Cluster script of data warehouse project
- Reader writer model
- 浅谈JVM(面试常考)
- Maximum number of "balloons"
- Codeforces round 712 (Div. 2) d. 3-coloring (construction)
- Time of process
- Introduction et expérience de wazuh open source host Security Solution
- [jailhouse article] look mum, no VM exits
- Daily question - Search two-dimensional matrix PS two-dimensional array search
- Over fitting and regularization
猜你喜欢

用STM32点个灯

Implement an iterative stack

全国中职网络安全B模块之国赛题远程代码执行渗透测试 //PHPstudy的后门漏洞分析

Hang wait lock vs spin lock (where both are used)

F - Two Exam(AtCoder Beginner Contest 238)

Time of process

Palindrome (csp-s-2021-palin) solution

【Jailhouse 文章】Performance measurements for hypervisors on embedded ARM processors

Sword finger offer 09 Implementing queues with two stacks

Fried chicken nuggets and fifa22
随机推荐
剑指 Offer 05. 替换空格
Scope of inline symbol
Convolution neural network -- convolution layer
Introduction to memory layout of FVP and Juno platforms
Talking about JVM (frequent interview)
智慧工地“水电能耗在线监测系统”
剑指 Offer 04. 二维数组中的查找
CF1637E Best Pair
Summary of Haut OJ 2021 freshman week
Acwing 4300. Two operations
2022年贵州省职业院校技能大赛中职组网络安全赛项规程
[jailhouse article] performance measurements for hypervisors on embedded ARM processors
F - Two Exam(AtCoder Beginner Contest 238)
Graduation project of game mall
CF1634 F. Fibonacci Additions
数仓项目的集群脚本
[jailhouse article] jailhouse hypervisor
[jailhouse article] look mum, no VM exits
Daily question - longest substring without repeated characters
ALU逻辑运算单元