草庐IT

leetcode--无重复字符的最长子串

前言今天做题做到这道题看到一种很神奇的做法,想写这一篇博客记录一下具体的思路过程题目描述我们先来看题目的描述我们要注意一下这个示例三的描述,题目说的是要求子串,子串在这个原字符串中应该是连续的,所以对于“pwwkew”这个字符串的子串就应该是wke而并非是pwke。解题思路这道题我们的解题思路是“移动窗口”的方法,从字符串首个元素开始遍历,当出现重复字符的时候就把起点从首元素改为这个重复字符的位置,并把上一次从开始到找到第一个重复字符时的子串长度,以此类推,每次找到重复的字符就截断,把起点重设并记录该子串长度与前一次的子串长度比较。最后返回最大子串的长度。变量设置根据上述的解题思路来设置合适的

Python正则表达式查找最长数字子串(好未来2017笔试题)

问题描述:读入一个字符串str,输出字符串str中的连续最长的数字串。思路与代码:deflongest1(s):  '''查找所有连续数字'''  importre  t=re.findall('\d+',s)  ift:    returnmax(t,key=len)  return'No'deflongest2(s):  '''使用非数字作为分隔符'''  importre  t=re.split('[^\d]+',s)  ift:    returnmax(t,key=len)  return'No'deflongest3(s):  '''笨办法'''  result=[]  t=[] 

Python正则表达式查找最长数字子串(好未来2017笔试题)

问题描述:读入一个字符串str,输出字符串str中的连续最长的数字串。思路与代码:deflongest1(s):  '''查找所有连续数字'''  importre  t=re.findall('\d+',s)  ift:    returnmax(t,key=len)  return'No'deflongest2(s):  '''使用非数字作为分隔符'''  importre  t=re.split('[^\d]+',s)  ift:    returnmax(t,key=len)  return'No'deflongest3(s):  '''笨办法'''  result=[]  t=[] 

最长上升子序列 II

最长上升子序列II题目描述给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤100000-10^9≤数列中的数≤10^9输入样例:73121856输出样例:4算法1(DP)O(n^2)动态规划状态转移时间复杂度O(n^2),数据范围10^5会TLE空间复杂度dontknowC++代码#includeusingnamespacestd;constintN=1010;intn;inta[N];intf[N];intmain(){cin>>n;for(inti=1;i算法

最长上升子序列 II

最长上升子序列II题目描述给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤100000-10^9≤数列中的数≤10^9输入样例:73121856输出样例:4算法1(DP)O(n^2)动态规划状态转移时间复杂度O(n^2),数据范围10^5会TLE空间复杂度dontknowC++代码#includeusingnamespacestd;constintN=1010;intn;inta[N];intf[N];intmain(){cin>>n;for(inti=1;i算法

最长上升子序列 II

最长上升子序列II题目描述给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤100000-10^9≤数列中的数≤10^9输入样例:73121856输出样例:4算法1(DP)O(n^2)动态规划状态转移时间复杂度O(n^2),数据范围10^5会TLE空间复杂度dontknowC++代码#includeusingnamespacestd;constintN=1010;intn;inta[N];intf[N];intmain(){cin>>n;for(inti=1;i算法

最长上升子序列 II

最长上升子序列II题目描述给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示完整序列。输出格式输出一个整数,表示最大长度。数据范围1≤N≤100000-10^9≤数列中的数≤10^9输入样例:73121856输出样例:4算法1(DP)O(n^2)动态规划状态转移时间复杂度O(n^2),数据范围10^5会TLE空间复杂度dontknowC++代码#includeusingnamespacestd;constintN=1010;intn;inta[N];intf[N];intmain(){cin>>n;for(inti=1;i算法

如何编写一个函数来查找字符串数组中的最长公共前缀,说明:所有输入只包含小写字母a~z ,如果不存在公共前缀,返回空字符串

  1,先新建一个类,因为我们肯定要在类里面写,在main方法里调用(为求好理解这里我用的默认名,请勿纠结)       ,2,首先我们要想到函数中的字符串最好是要用户自行输入的,那么我们可以通过main方法里的Console.WriteLine获取到用户输入的三个字符串,依次赋值给参数,然后调用我们在类里写好的方法体    3,可以看到在类内部有一个publ方法,这个方法有三个参数,分别对应用户输入的1,2,3,的字符串  4,题目说明只能使用小写字母输入,所以从开始输入再到判断大写弹出提示,程序都尽可能的去提醒用户输入小写字符串。(为使条件更严谨,本章使用嵌套if判断) 

如何编写一个函数来查找字符串数组中的最长公共前缀,说明:所有输入只包含小写字母a~z ,如果不存在公共前缀,返回空字符串

  1,先新建一个类,因为我们肯定要在类里面写,在main方法里调用(为求好理解这里我用的默认名,请勿纠结)       ,2,首先我们要想到函数中的字符串最好是要用户自行输入的,那么我们可以通过main方法里的Console.WriteLine获取到用户输入的三个字符串,依次赋值给参数,然后调用我们在类里写好的方法体    3,可以看到在类内部有一个publ方法,这个方法有三个参数,分别对应用户输入的1,2,3,的字符串  4,题目说明只能使用小写字母输入,所以从开始输入再到判断大写弹出提示,程序都尽可能的去提醒用户输入小写字符串。(为使条件更严谨,本章使用嵌套if判断) 

leetcode 409 Longest Palindrome 最长回文串(简单)

一、题目大意给定一个包含大写字母和小写字母的字符串s,返回通过这些字母构造成的最长的回文串。在构造过程中,请注意区分大小写。比如"Aa"不能当做一个回文字符串。示例1:输入:s="abccccdd"输出:7解释:我们可以构造的最长的回文串是"dccaccd",它的长度是7。示例2:输入:s="a"输入:1提示:1s只由小写和/或大写英文字母组成来源:力扣(LeetCode)链接:https://leetcode.cn/problems/longest-palindrome著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。二、解题思路思路:先统计每个字符出现的次数,再遍历统计后