
用八种编程语言来找出最长的字符串 (Javascript,Java,C #,Swift,Kotlin,Python,C++,Golang)
用八种编程语言来找出最长的字符串
用八种编程语言(Javascript,Java,C#,Swift,Kotlin,Python,C++,Golang)来找出最长的字符串
我试图使用最快的算法来在每种语言中完成任务要求,如果你找到了更好的方案,请告诉我一下。
给定一个字符串str,找到不重复字符的最长子字符串。
比如我们有 “ABDEFGABEF”, 最长的字符串是 “BDEFGA” 和 “DEFGAB”, 长度为6.
再如 “BBBB” 最长字符串是 “B”, 长度为1.
再比如 “neatcoding” 最长字符串是“neatcodi”, 长度为8.
所需的时间复杂度为O(n),其中n是字符串的长度。
我们将逐个字符地遍历该字符串
检查此字符是否在当前子字符串中,如果是,则将当前子字符串保存到子字符串集合中,使用此字符作为起始值创建一个新的子字符串;
如果否,则将此字符添加到当前子字符串中;
至此,循环结束,检查当前子字符串是否为空,如果是,则不执行任何操作
如果否,请将其添加到子字符串集合
我们设置一个对象来存储最长的子字符串,
现在,让我们遍历子字符串集合,找到最长的一个
检查当前子字符串是否更长,如果是,则替换最长的字符串
如果没有,什么也不做
最后,我们有最长的子字符串。
让我们编码。
https://www.toutiao.com/i6753687339551162893/
