字符串左侧补0_(48)C++面试之最长不含重复字符的子字符串(动态规划)

be6f0af9f11a630cec2e580c5145350a.png

// 面试题48:最长不含重复字符的子字符串

// 题目:请从字符串中找出一个最长的不包含重复字符的子字符串,计算该最长子

// 字符串的长度。假设字符串中只包含从'a'到'z'的字符。


#include <vector>
#include <string>
#include <iostream>using namespace std;int maxlengstring(const string& str)
{if(str.empty())return 0;//定义一个值都为-1的pos[]的26个数std::vector<int>position(26,-1);int maxlen=0;int curlen=0;for(size_t i=0;i<str.size();i++){int pos=str[i]-'a';//abcdarca//第i位上的字母在左侧从未出现 f(i)=f(i-1)+1if(position[pos]<0)curlen+=1;else{int d=i-position[pos];// d<=f(i-1)时 f(i)=d此时上一次出现的位置在上一个最长不重复子串内部if(curlen>=d)curlen=d;//d>f(i-1) 时 f(i)=f(i-1)+1else{curlen+=1;}}position[pos]=i;maxlen=maxlen>curlen?maxlen:curlen;       }return maxlen;
}int main()
{string str="abcdadrcadfa";int len=maxlengstring(str);cout<<"len: "<<len;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/502922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jp摩根的人都在学python么_摩根大通已要求所有资管部门员工必须学习编程

当代最具竞争力的技能是什么&#xff1f;摩根大通CEO告诉你---编程。今年新加入摩根大通的全部资产管理分析师必须强制学习编程语言&#xff0c;Python。摩根大通资管经理Mary Callahan Erodes表示“现代资产管理的唯一语言是编程语言”。因为强制普及编程语言&#xff0c;现在…

java exec 关闭_如何正确关闭java ExecutorService

从ExecutorService的 Oracle API文档页面推荐的方法&#xff1a;void shutdownAndAwaitTermination(ExecutorService pool) {pool.shutdown(); // Disable new tasks from being submittedtry {// Wait a while for existing tasks to terminateif (!pool.awaitTermination(60,…

java udp 同一个端口实现收发_Java网络编程之UDP协议

伙伴们注意了&#xff01;小编在这里给大家送上关注福利&#xff1a;搜索微信公众号“速学Java”关注即可领取小编精心准备的资料一份&#xff01;今天我们来聊聊网络编程这部分的内容网络编程1)计算机网络是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0…

iterate mysql_ITERATE

OutOfOrderScannerNextException: was there a rpc tiaused by: java.util.concurrent.ExecutionException: org.apache.phoenix.exception.PhoenixIOException: Failed after retry of OutOfOrderScannerNextExcept...文章余二五2017-11-222749浏览量Hibernate-ORM:05.Hiberna…

java 多态_Java面向对象 —— 多态

前两天已经相继介绍了Java面向对象的三大特性之中的封装、继承&#xff0c;所以今天就介绍Java面向对象的三大特性的最后一项&#xff0c;多态~首先讲一下什么是多态&#xff0c;以及多态需要注意的细节 什么是多态&#xff1a;一个对象具备多种形态&#xff0c;也可以理解为事…

2023年State-of-AI-Report阅读

文章目录 1、在研究进展方面2、在行业局势方面3、在现有政策方面4、在安全问题方面研究进展行业局势现有政策安全问题 State of AI Report系列至今已经是第六个年头了 也成为了人工智能领域的风向标 这个报告是由业界领先的AI从业者撰写 除了总结过去 也会对未来发展进行很…

java a星寻路算法_用简单直白的方式讲解A星寻路算法原理

很多游戏特别是rts&#xff0c;rpg类游戏&#xff0c;都需要用到寻路。寻路算法有深度优先搜索(DFS)&#xff0c;广度优先搜索(BFS)&#xff0c;A星算法等&#xff0c;而A星算法是一种具备启发性策略的算法&#xff0c;效率是几种算法中最高的&#xff0c;因此也成为游戏中最常…

vb6 方法‘ ’作用于对象 失败_JS基础入门-对象的使用

今日背诵小纸条对象是一组属性方法的组合&#xff0c;其中可包含基本值、对象和函数对象的定义1 对象字面量var hero{name: ‘产品小姐姐’&#xff0c;age: 16&#xff0c;weapon: [ ‘头盔’, ‘靴子’, ‘盔甲 ]&#xff0c;sayHi: function ( ) {console.log( this.name ’…

java接口中方法声明_java – 使用实现中声明的接口中未定义的方法

我有一个由接口定义的类public interface Test {void testMethod();}Test test new TestImpl();public class TestImpl implements Test {Overridepublic void testMethod() {//Nothing to do here}public void anotherMethod() {//I am adding this method in the implementa…

无法从套接字读取更多的数据 oracle_小伙面试时被追问数据库优化,面试前如何埋点反杀?

前言周五的早高峰, 各地软件园地铁站里中出现了不少穿着长袖加绒格子衫, 背双肩电脑包的年轻码农, 现在节气正值 [ 小雪 ] , 11月的全国性突然降温 , 让经历过996摧残的猿们一出地铁站就冻的打了个激灵 , 很庆幸的告诉大家距离放年假还剩不到 37 个工作日, 要买火车票的赶紧预约…

java随机数生成三位数_Java随机数总结

先放一道面试真题以下关于随机数的描述&#xff0c;正确的是&#xff1a;A. Matn.random() 可以生成 [ 0 , 1 ] 内的任意小数B. Random.next( 10 ) 可以生成 [ 0 , 10 ] 内的任意整数C. new java.util.Random().nextInt( 11 ) 可以生成 [ 0 , 10 ] 内的任意整数D. new java.uti…

python锁机制_python基础(锁机制,守护线程,线程队列,线程池)

一、 互斥锁(Lock)与递归锁(RLock)机制1.1 由互斥锁(Lock)产生的死锁现象&#xff1a;#互斥锁(死锁现象)&#xff1a;#死锁现象&#xff1a;from threading importLocklockLock()lock.acquire()print(123)lock.acquire()#等待获取锁(死锁状态)print(456)lock.release()#等待释放…

java包图标是文件_关于更换.jar文件默认图标

最近写了个java程序&#xff0c;导出.jar文件后觉得默认图标太寒酸&#xff0c;想换一个自个儿喜欢的。eclipse导出.jar文件网上提供了很多很正确的方法&#xff0c;我也不必赘述。至于更改默认图标&#xff0c;网上提供的一些方法真是让人不敢恭维。部分人提供的方法是“右击-…

qlineedit限制输入数字_Excel单元格限制录入,实用小技巧

在填写资料表格的时候&#xff0c;为了不防止出错&#xff0c;会在单元格中设置一些技巧&#xff0c;限制对方输入内容&#xff0c;这样可以更好的预防输入错误。那么单元格限制输入技巧是如何实现的呢&#xff1f;1、限制只能录入数字比如单元格是我们要用来填写年龄数据等数字…

java二维数组 内存分配_java中二维数组内存分配

区分三种初始化方式&#xff1a;格式一&#xff1a;数据类型[][] 数组名 new 数据类型[m][n];m:表示这个二维数组有多少个一维数组。n:表示每一个一维数组的元素有多少个。//例&#xff1a;int arr[][]new int[3][2];如下图格式二&#xff1a;数据类型[][] 数组名 new 数据类…

如何在python官网下载pip_[Python]Pip的安装以及简单的使用

Pip的安装安装python以后(我的python版本是32位&#xff0c;版本号2.7.10)&#xff0c;如果需要安装一些其他的库&#xff0c;一般有两种办法&#xff0c;一种是自己手动去各个库的官网下载&#xff0c;自己安装&#xff1b;另一种方法是安装pip&#xff0c;使用pip可以方便安装…

java造型_java造型_java向上造型有什么作用为什么要造型有什么效果_彩妆阁

1、java中造型与转型都什么意思&#xff0c;怎么用&#xff1f;我知道我知道 造型就是款式比如新款 爆款 秒杀款卖爆了等等这就是造型至于转型比如你之前写Java然后写.net 就叫转型了啦2、java中上溯造型是什么原理Upcasting&#xff0c;上溯造型&#xff0c;有的书译作“向上转…

word公式插件_如何快速输入复杂的数学公式?这里有 3 个实用技巧

不管你是不是科研狗&#xff0c;都可能遇到过在文章中插入公式。而我们最常用的就是使用 Word 自带的公式编辑器输入&#xff0c;Word 公式可以很好地匹配文章的格式&#xff0c;自然地插入文中。有时候处理一个公式简单&#xff0c;但如果你要输入大量公式&#xff0c;键盘、鼠…

java动作监听退出程序_监听获取程序退出事件(Linux、Windows、Java、C++)

监听程序退出事件&#xff0c;主要是用于程序的优雅退出。下面针对Java、C在Windows、Linux下的处理分别进行介绍.1.Java监听程序退出事件Java本身是跨平台的&#xff0c;不必关系Windows还是Linux。具体做法如下&#xff1a;通过Runtime.getRuntime().addShutdownHook(Thread …

python创建access表_Access创建表

有了数据库管理系统&#xff0c;在输入数据之前&#xff0c;您需要创建表。 Microsoft Access创建表非常容易。 事实上&#xff0c;当你创建一个数据库&#xff0c;Access创建你的第一个表(称为Table1)。通常情况下&#xff0c;当你需要创建一个新的表&#xff0c;选择CREATE &…