LeetCode的一道题引申的python实现的对字符串进行分词,提取词频的方法

网友投稿 283 2022-06-19


在LeetCode上刷一道题,题目如下:

3. 无重复字符的最长子串

给定一个字符串,请你找出其中不含有重复字符的?最长子串?的长度。

示例?1:

输入: "abcabcbb"

输出: 3

解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。

示例 2:

输入: "bbbbb"

输出: 1

解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。

示例 3:

输入: "pwwkew"

输出: 3

解释: 因为无重复字符的最长子串是?"wke",所以其长度为 3。

?

请注意,你的答案必须是 子串 的长度,"pwke"?是一个子序列,不是子串。

我想到,如果忽略重复的情况,纯对无符号字符串进行分词,是怎么做的?

考虑了一下,思路比较简单:

先从单个字符开始,统计词频,然后对词频大于1的进行扩展,扩展处理的词长为2的,再统计词频,然后如此类推,一致推到所有的最高长度词都词频为1了,才结束。

如图所示:

最终代码如下:

输出结果如下:

心得体会如下:

1、对python的语法和方法还是不熟悉,导致了非常大的麻烦,经过这个例子,对字典的理解更深入了,虽然感觉不如c#的对应类型好用。

2、代码编辑器很麻烦,开始用vscode怎么也配置不上,重装了后,没有自动代码提示,也没有代码颜色高亮等,等再配置完了,这些有了,但代码执行不起来了,提示有空行在核心代码库里面。最后只能重装了anaconda3,直接用spyder来写,调试和代码执行也很麻烦。如果用vs和c#来写,估计连四分之一的时间都用不了。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python连载52-SOCKET编程示例(python实现socket通信)
下一篇:Python语言简介(python介绍)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~