leetcode算法题之 3. Longest Substring Without Repeating Characters
来源:互联网 发布:大数据学什么专业 编辑:程序博客网 时间:2024/06/15 01:55
题目说明:
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequence and not a substring.
https://leetcode.com/problems/longest-substring-without-repeating-characters/
解题思路一:
给定字符串上某个位置用 i 表示,令 j 从 i 开始,往下遍历这个字符串的每个字符直到字符串结束。使用一个hash结构保存遍历过程中,是否出现过某个字符,一旦发现位置 j 上的字符已经出现过,则跳出循环;此时从位置 i 开始,不重复的子串长度为 j-i。如果这个长度大于 已知的最大不重复子串长度maxlen,则将 maxlen 更新为 j-i。
显然,此解法的时间复杂度为 O(n^2)。
Go代码如下:
func lengthOfLongestSubstring(s string) int { str := []rune(s) maxlen := 0 for i := 0; i < len(str); i++ { var strmap = make(map[rune] bool) j := i for ; j < len(s); j++ { if v, ok := strmap[str[j]]; ok { _ = v break } else { strmap[str[j]] = true } } if j-i > maxlen { maxlen = j-i } } return maxlen}
语言技巧:
因为如果字符串出现中文等多字节字符,则不能简单通过字符串下标取得一个字符,所以把字符串转为字符数组切片类型,这样可以通过下标访问每个字符。
待补充。。。
- leetcode算法题之 3. Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- LeetCode 之 Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- leetcode之 Longest Substring Without Repeating Characters
- Leetcode 之 Longest Substring Without Repeating Characters
- leetcode 之Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- 【Leetcode】之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- leetcode之Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- leetcode之 Longest Substring Without Repeating Characters
- LeetCode之Longest Substring Without Repeating Characters
- java基础(22)--单例模式序列化
- 北京林业大学“计蒜客”杯程序设计竞赛 网络赛 A. 喝酒
- 【matlab】中文无法显示解决办法
- C++中数字与字符串之间的转换
- 【Arduino官方教程第一辑】示例程序 2-6 音乐键盘-tone函数的运用
- leetcode算法题之 3. Longest Substring Without Repeating Characters
- Android:使用pagerslidingtabstrip做Tab
- 专题二 1011
- cloudfoundry dea 之 app staging
- java内部类
- java定时器
- linux下使用命令修改IP地址
- 记毕业之后第一次面试经历,包括面试内容,面试心得。。。
- 【leetcode】(Python)Reverse Vowels of a String实现字符串内元字符倒序