给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
题目:
给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
题目解析:
有一个字符串,长度不定, 要找出不重复字符串的长度,我们可以这么假设,先找到第一个下标,然后从后面拿到元素的下标对比,如果不等,就取到下一个元素的下标。如果相等,就取前一元素的下标。最后截取字符串的长度 计算。
python代码实现:
def finstr(findstr:str): for i in range(len(findstr)): for j in range(len(findstr)): data = findstr[0:i] if str(findstr[j]) in str(data): m=findstr[0:i] else: m=findstr[0:j+1] return len(m)
测试代码:
from sixexapmle import finstr import unittest class Test(unittest.TestCase): def setUp(self) -> None:pass def tearDown(self) -> None:pass def testone(self): reslut=finstr("0") self.assertEqual(1,reslut) def testtewo(self): reslut=finstr("01") self.assertEqual(2,reslut) def testthree(self): reslut=finstr("011") self.assertEqual(2,reslut) if __name__=="__main__": unittest.main()
测试结果:
代码覆盖率:
其实实现起来不难,
我们来看下java版本的实现:
代码:
public class Five { public Integer maxstr(String max){ String m=""; for (int a = 0; a < max.length(); a++) { String n=max.substring(0,a); for (int b = 0; b < max.length(); b++) { if (n.indexOf(max.substring(b))!=-1 ){ m=max.substring(0,b); }else { m=max.substring(0,a+1); } } } return m.length(); } }
测试代码:
public class FiveTest { @Test public void testMaxstr() { Five five=new Five(); assertEquals(five.maxstr("12").intValue(),2); } @Test public void testMaxstr1() { Five five=new Five(); assertEquals(five.maxstr("1").intValue(),1); } @Test public void testMaxstr2() { Five five=new Five(); assertEquals(five.maxstr("121").intValue(),2); } }
测试结果:
覆盖率:
自此,上面完成的就是本题。
注:这是提供一种思路方案,实现方式千万种。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?