面试题 17.05. 字母与数字
创始人
2024-06-01 15:08:24
0

题目链接

面试题 17.05. 字母与数字 mid

题目描述

给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。

返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。

示例 1:

输入: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”,“H”,“I”,“J”,“K”,“L”,“M”]
输出: [“A”,“1”,“B”,“C”,“D”,“2”,“3”,“4”,“E”,“5”,“F”,“G”,“6”,“7”]

示例 2:

输入: [“A”,“A”]
输出: []

提示:

  • array.length≤100000array.length \leq 100000array.length≤100000

分析:前缀和 + 哈希表

我们可以将 字母看作是 +1,数字看作是 -1,那么原问题就转换为 求最长的一段和 sum = 0的子数组

我们用一个哈希表 m来记录遍历过的 前缀和 s[i]和它对应的下标 i

如果当前遍历到了 s[j],并且 m存在 s[j]这个键。由此,我们可以得到 i = m[s[j]]。那么 (i , j]这一段就是和为 0

的子数组,我们就将答案更新即可。

我们用 idx代表最长的那段子数组的起始下标,用 len表示最长的那段子数组的长度。

最后返回 array的这一段 [idx , idx + len]即可。

时间复杂度: O(n)O(n)O(n)

C++代码:

class Solution {
public:vector findLongestSubarray(vector& arr) {int n = arr.size();unordered_map m{{0,-1}};int idx = 0 , len  = 0;for(int j = 0 ,s = 0;j < n;j++){s += (arr[j][0] >= 'A' ? 1 : -1);if(m.count(s)){int i = m[s];if(j - i > len){len = j - i;idx = i + 1;}}else m[s] = j;}return vector (arr.begin() + idx,arr.begin() + idx + len);}
};

Python代码:


class Solution:def findLongestSubarray(self, arr: List[str]) -> List[str]:m = {0:-1}s = idx = len = 0for j,str in enumerate(arr):s += 1 if str.isalpha() else -1if s in m:i = m[s]if len < j - i:idx = i + 1len = j - ielse:m[s] = j    return arr[idx:idx+len]

相关内容

热门资讯

50名日本青年解锁课本外的立体... 北京语言大学的学生和日本青年分组讨论。 主办方供图  本报记者 吴娜 实习生 孙择 隆楚妍  5月1...
迈出艰难一步 未实现突破   俄罗斯和乌克兰代表团16日在土耳其伊斯坦布尔举行双方三年多来的首次直接谈判。双方就互换1000名...
逐“光”而行向未来——在“中国... 来源:新华网 .新华社武汉5月17日电 能背在身上的激光工坊、可每秒传输1.2TB数据的光纤、会自动...
潘展乐全国游泳冠军赛夺冠 来源:新华社微博 【潘展乐400米自夺冠】在刚刚举行的2025年全国游泳冠军赛男子400米自由泳决赛...
岛内舆论担忧“非核家园”冲击台... 来源:新华网 新华社台北5月17日电(记者李建华)台湾第三核能发电厂(简称核三厂)2号机17日正式除...
2025创新核药专题会议在锡举... 来源:无锡日报  昨天(5月17日),2025太湖湾生命健康未来大会平行论坛之一——2025创新核药...
市领导调研便民就医公共交通优化... 来源:无锡日报市领导调研便民就医公共交通优化提升工作 “一院一策”优化就医公共交通体系 细致入微解决...
以军过去48小时行动致加沙地带... 转自:财联社【以军过去48小时行动致加沙地带200人死亡】财联社5月18日电,据加沙政府媒体办公室当...
转存了解!这件即将归国的文物大... 当地时间5月16日,国家文物局在中国驻美国大使馆接收美国史密森尼学会国立亚洲艺术博物馆返还的子弹库帛...
“流动探头”赋能基层社会治理 本报果洛讯 (记者 余晖 李永波) 5月14日,果洛藏族自治州玛沁县委社会工作部举办玛沁县“流动探头...
返回海晏村创业的年轻人 夕阳熔金、晚霞绚烂,昆明滇池之畔的海晏古渔村,正以其独特的魅力吸引着游客的目光。这里有着“落霞与孤鹜...
美国两架小型飞机坠毁 3人丧生 当地时间5月17日,美国一架比奇95飞机从科罗拉多州布鲁姆菲尔德落基山大都会机场起飞后不久坠毁。消防...
战国帛书《五行令》《攻守占》 ... 转自:成都日报锦观战国帛书《五行令》《攻守占》回归祖国 这是5月16日在美国首都华盛顿中国驻美...
戈壁绿茵燃激情 赛事经济助发展 比赛现场。自媒体达人现场推介海西农特产品。本报记者 齐延迪 苏烽 摄本报记者 苏  烽 齐延迪当风拂...
5月19日 来云南民族村打卡彩... 5·19中国旅游日“锦绣山河 美好旅程”云南分会场活动——云南民族村《云·说云南》邀您共赴一场绚丽多...
“中华水塔·自然 荣耀·野生动... 本报讯 (记者 宋明慧) 5月17日,“中华水塔·自然荣耀·野生动物”影像展首场展览在西宁人民公园举...
青海规范旅行社旅游包车(船)行... 本报讯(记者邢生祥)记者日前从青海省文化和旅游厅获悉,今年,青海将进一步规范旅行社旅游包车(船)行为...
全省首个国别园区知识产权工作站... 转自:成都日报锦观全省首个国别园区知识产权工作站设立 本报讯 (成都日报锦观新闻记者 吴怡霏)...
全市新增契税减税规模达12.2... 转自:成都日报锦观房地产契税新政策落地4个月全市新增契税减税规模达12.2亿元 本报讯 (成都...
青海多举措提升 农村客货邮共配... 本报讯 (记者 倪晓颖) 记者近日从青海省交通运输厅获悉,为全力推动全省农村客货邮融合发展提档升级,...