0
点赞
收藏
分享

微信扫一扫

「 每日一练,快乐水题 」744. 寻找比目标字母大的最小字母


文章目录

  • ​​🔴力扣原题:​​
  • ​​🟠题目简述:​​
  • ​​🟡解题思路:​​
  • ​​🟢C++代码:​​
  • ​​🔵结果展示:​​

🔴力扣原题:

​​力扣链接:744. 寻找比目标字母大的最小字母​​

🟠题目简述:

给你一个排序后的字符列表 letters ,列表中只包含小写英文字母。另给出一个目标字母 target,请你寻找在这一有序列表里比目标字母大的最小字母。

在比较时,字母是依序循环出现的。举个例子:

如果目标字母 target = ‘z’ 并且字符列表为 letters = [‘a’, ‘b’],则答案返回 ‘a’

🟡解题思路:

1.利用map进行模拟;
2.把target与letters插入map;
3.找出target下一个元素;处理元素越界,则使用第一个元素;
4.over;

🟢C++代码:

class Solution {
public:
char nextGreatestLetter(vector<char>& letters, char target) {

map<char, int> nmap;
char chRet = '0';

for(auto letter : letters)
{
nmap[letter] = letter - 'a';
}

nmap[target] = target - 'a';


map<char, int>::iterator iter;
iter = nmap.find(target);

if(iter != nmap.end())
{
if(++iter == nmap.end())
{
map<char, int>::iterator it;
it = nmap.begin();
chRet = it->first;
}
else
{
chRet = iter->first;
}
}

return chRet;
}
};

🔵结果展示:

「 每日一练,快乐水题 」744. 寻找比目标字母大的最小字母_c++


举报

相关推荐

0 条评论