当前位置:网站首页>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],
边栏推荐
- 搭建完数据库和网站后.打开app测试时候显示服务器正在维护.
- 用STM32点个灯
- [article de jailhouse] jailhouse hypervisor
- 第六章 数据流建模—课后习题
- [jailhouse article] jailhouse hypervisor
- Zheng Qing 21 ACM is fun. (3) part of the problem solution and summary
- Drawing dynamic 3D circle with pure C language
- Find a good teaching video for Solon framework test (Solon, lightweight application development framework)
- Kubedm series-00-overview
- 剑指 Offer 04. 二维数组中的查找
猜你喜欢
随机推荐
Demonstration of using Solon auth authentication framework (simpler authentication framework)
Wazuh开源主机安全解决方案的简介与使用体验
Typical use cases for knapsacks, queues, and stacks
中职网络安全技能竞赛——广西区赛中间件渗透测试教程文章
2017 USP Try-outs C. Coprimes
Scope of inline symbol
Annotation and reflection
Warning using room database: schema export directory is not provided to the annotation processor so we cannot export
Some common problems in the assessment of network engineers: WLAN, BGP, switch
lxml. etree. XMLSyntaxError: Opening and ending tag mismatch: meta line 6 and head, line 8, column 8
CF1637E Best Pair
Drawing dynamic 3D circle with pure C language
High precision subtraction
Daily question - Search two-dimensional matrix PS two-dimensional array search
用STM32点个灯
SAP method of modifying system table data
Gbase database helps the development of digital finance in the Bay Area
读者写者模型
MySQL数据库(一)
【实战技能】非技术背景经理的技术管理