给定一个字符串str,返回字符串中字母顺序最大的而且同时在字符串中出现大写和小写的字母。 如果不存在这样的字母,返回‘~‘。
please return uppercase
|str|<=1000
示例
例 1:
输入:"aAbBcD"
输出:'B'
解释:因为c和D没有大小写同时出现,
A和B都有大小写,但是B比A大,所以返回B。
例2:
输入:"looGVSSPbR"
输出:'~'
class Solution {
public:
/**
* @param str: the str
* @return: the letter
*/
char findLetter(string &str) {
// Write your code here.
char ans = '~';
vector<int> count(26,0);
for(auto c : str)
{
int idx;
if(c>='a' && c<='z')
{
idx = c - 'a';
if(count[idx]==0 || count[idx]==2)
count[idx]++;
}
else
{
idx = c - 'A';
if(count[idx]==0 || count[idx]==1)
count[idx] += 2;
}
}
for(int i = 0; i < 26; i++)
{
if(count[i] == 3)
ans = 'A'+i;
}
return ans;
}
};
50ms C++