给定一个长度为 n 的字符串,找出最多包含两种字符的最长子串 t ,返回这个最长的长度。 数据范围: ,字符串种仅包含小写英文字母

区块链毕设网qklbishe.com为您提供问题的解答

给定一个长度为 n 的字符串,找出最多包含两种字符的最长子串 t ,返回这个最长的长度。
数据范围: 给定一个长度为 n 的字符串,找出最多包含两种字符的最长子串 t ,返回这个最长的长度。          数据范围:  ,字符串种仅包含小写英文字母 ,字符串种仅包含小写英文字母

# -*- coding: utf-8 -*-  import sys, collections  class Solution:     """     题目:         https://www.nowcoder.com/practice/90d6a362fa7d4c519d557da797bb02ce?tpId=196&tqId=40552&rp=1&ru=/exam/oj&qru=/exam/oj&sourceUrl=%2Fexam%2Foj%3FjudgeStatus%3D3%26page%3D1%26pageSize%3D50%26search%3D%26tab%3D%25E7%25AE%2597%25E6%25B3%2595%25E7%25AF%2587%26topicId%3D196&difficulty=undefined&judgeStatus=3&tags=&title=         给定一个长度为 n 的字符串,找出最多包含两种字符的最长子串 t ,返回这个最长的长度。         用例1:             输入:nowcoder             输出:2         用例2:             输入:nooooow             输出:6     算法:         这里我们通过双指针i, j:i指向当前字符区间的起点,j指向当前字符区间的终点,如果s[i: j + 1]中包含的字符种类,小于等于2,j右移;否则,i右移,直到区间内的字符种类重新小于等于2。在移动区间的时候,我们使用字典count,统计当前区间内字符出现次数。使用maxLen,更新满足条件的字符串的长度。     复杂度:         时间复杂度:O(n)         空间复杂度:O(1)     """      def solve(self, s):         n = len(s)          i, j, count, maxLen = 0, 0, collections.defaultdict(int), 2         while j < n:             count[s[j]] += 1             while len(count) > 2:                 count[s[i]] -= 1                 if count[s[i]] == 0:                     count.pop(s[i])                 i += 1             maxLen = max(maxLen, j - i + 1)             j += 1         return maxLen  if __name__ == "__main__":     sol = Solution()      s = sys.stdin.readline().strip() # 输入字符串,去除首尾空格      res = sol.solve(s)      print res

50:49

以上就是关于问题给定一个长度为 n 的字符串,找出最多包含两种字符的最长子串 t ,返回这个最长的长度。
数据范围: ,字符串种仅包含小写英文字母的答案

欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。

区块链NFT链游项目方科学家脚本开发培训

从业7年-专注一级市场


微信:btc9767
TELEGRAM :https://t.me/btcok9

具体资料介绍

web3的一级市场千万收益的逻辑


进群点我



qklbishe.com区块链毕设代做网专注|以太坊fabric-计算机|java|毕业设计|代做平台-javagopython毕设 » 给定一个长度为 n 的字符串,找出最多包含两种字符的最长子串 t ,返回这个最长的长度。 数据范围: ,字符串种仅包含小写英文字母