T2最长的AB序列(20分) - 京东前端笔试编程题&题解

alt

考试平台: 牛客网

题目类型: 选择题(40分) + 3道编程题(60分)

考试时间: 2024-03-23 (两小时)

题目描述

给出一个仅由字符AB构成的字符串Str

请你求出S中包含A和B个数相同的连续区间的最长长度。

输入描述

输入的第一行给出字符串S。(

输出描述

输出S中包含A和B个数相同的连续区间的最长长度。

示例1

输入:
AAAAAA

输出:
0

示例2

输入:
AAABBBBAAABBB

输出:
12

题解

这道题目属于字符串和前缀和类型的算法题。需要统计字符串中包含A和B个数相同的连续区间的最长长度。

解题思路:

  1. 首先读取输入的字符串S。
  2. 将字符串S中的字符'A'视为1,字符'B'视为-1,并计算前缀和数组pre_sum,表示从字符串开始到当前位置的A和B的数量差值。
  3. 遍历前缀和数组pre_sum,使用哈希表min_pos记录每个差值首次出现的位置,同时更新最长长度max_length,即当前位置与首次出现位置之间的距离。
s = input()
n = len(s)

# 当字符串为 A 看做 1, 否则看成 -1 , 然后对数字进行求前缀和
pre_sum = [0] * (n + 1)
for i in range(n):
    pre_sum[i + 1] = pre_sum[i] + 1 if s

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

🔥笔试编程真题宝典💯 文章被收录于专栏

📕分享大厂机试真题深度剖析核心考点,助你速通面试。

全部评论

相关推荐

TypeScript和JavaScript是两种不同的编程语言,它们之间有一些区别。以下是一些主要区别:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&uuid=f8842a9cffea4857b416b8fc59e8156e类型系统:TypeScript是一种静态类型的编程语言,支持类型注解和类型检查。开发者可以显式地定义变量、函数参数、函数返回值等的类型,并确保类型的正确性。JavaScript是一种动态类型的语言,变量可以在运行时随时改变类型。语法扩展:TypeScript是JavaScript的超集,它提供了许多额外的语法扩展,如接口、枚举、泛型、命名空间等。这些扩展让开发者能够更好地组织和管理复杂的代码结构。编译过程:JavaScript是一种解释性的语言,代码在运行之前不需要经过编译过程。而TypeScript代码需要先编译成JavaScript代码,然后才能在浏览器或Node.js环境中运行。生态系统:JavaScript有一个庞大且活跃的生态系统,有很多成熟的开源库和框架可供开发者使用。TypeScript可以无缝地使用JavaScript的库和框架,并且有自己的类型定义库(@types),提供了与JavaScript生态系统的良好兼容性。错误检测:由于TypeScript具有静态类型检查,它在编译阶段就能够发现潜在的类型错误和常见的编码错误,从而提高了代码的健壮性和可维护性。JavaScript在运行时才会发现这些错误。总的来说,TypeScript可以看作是JavaScript的增强版本,它提供了更强的类型系统和更多的语言特性,使得代码更具可读性、可维护性和功能扩展性。但JavaScript仍然是一门广泛使用的强大编程语言,尤其在Web开发领域具有举足轻重的地位。
2024-05-18
在牛客打卡187天,今天也很努力鸭!
点赞 评论 收藏
分享
3 5 评论
分享
牛客网
牛客企业服务