题目
代码

class Solution:
def numberOfLines(self, widths: List[int], s: str) -> List[int]:
char="abcdefghijklmnopqrstuvwxyz"
dic=dict()
for key,value in zip(char,widths):
dic[key]=value
#每行最多100个字符
cnt=0
line=0
for item in s:
if cnt+dic[item]<100:
cnt+=dic[item]
elif cnt+dic[item]==100:
line+=1
cnt=0
else:
line+=1
cnt=dic[item]
if cnt:
line+=1
else:
cnt=100
return [line,cnt]
【写法2】

class Solution:
def numberOfLines(self, widths: List[int], s: str) -> List[int]:
cnt=0
line=0
for item in s:
temp=widths[ord(item)-ord('a')]
if cnt+temp<100:
cnt+=temp
elif cnt+temp==100:
line+=1
cnt=0
else:
line+=1
cnt=temp
if cnt:
line+=1
else:
cnt=100
return [line,cnt]
【写法3】

class Solution:
def numberOfLines(self, widths: List[int], s: str) -> List[int]:
cnt=0
line=1
for item in s:
temp=widths[ord(item)-ord('a')]
cnt+=temp
if cnt>100:
line+=1
cnt=temp
return [line,

这篇博客介绍了三种不同的Python实现方式,用于计算字符串在给定字符宽度列表限制下占用的行数。每种方法都涉及到对字符串中每个字符宽度的累计,并判断是否超过每行的最大字符数100。这些实现对于文本布局和排版很有用。

被折叠的 条评论
为什么被折叠?



