服务记录 record 仅包含小写字母 a-z,最多只有 26 种不同的服务类型。题目要求找出出现次数大于 1 的类型,并且结果必须按照这些类型在 record 中首次出现的顺序排列。
因此,核心思路分为两步:
26 的数组统计每个字符出现次数,并记录每个字符的首次出现位置。1,则将其加入结果。你是某连锁酒店的数据分析师,酒店每天都会用一串编码记录各分店收到的服务请求类型,编码由小写字母组成[a-z],每个字母代表一种特定类型的服务请求(如a-客房清洁、b-设备维修、c-餐饮服务等等)。为了优化资源分配,总部需要找出在当天内重复出现的服务类型,并按照它们首次出现的时间顺序生成报告。
现在给定一个服务记录字符串 record(仅包含小写字母a-z),请找出所有出现超过一次的服务类型,并将这些服务类型按照它们在记录中第一次出现的顺序放入结果列表中,如果没有服务类型重复出现,返回空列表。
备注:结果只列出符合条件的服务类型的编号a-z,编号的顺序按照第一次出现的顺序排列。
输入为一个字符串 record,仅包含小写字母a-z。
输出为一个列表,包含所有出现超过一次的服务类型的编号(a-z),按首次出现的顺序排列;若无重复类型,输出空列表。
输入
"programming"
输出
["r","g","m"]
说明
记录中 r 出现2次(第2和第6次请求),首次出现在位置2;g 出现2次(第3和第10次请求),首次出现在位置3;m 出现2次(第7和第8次请求),首次出现在位置7;其他类型如 p、o、a、i、n 都只出现一次。按首次出现顺序排列为:f、g、m。
输入
"hello"
输出
["l"]
说明
只有 l 类型重复出现(第3和第4次请求),首次出现在位置3。
输入
"abcde"
输出
[]
说明
所有服务类型都只出现一次,返回空数组。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册