天池 線上程式設計 尋找字母(計數)
阿新 • • 發佈:2021-01-20
技術標籤:LintCode及其他OJ
文章目錄
1. 題目
給定一個字串str,返回字串中字母順序最大的而且同時在字串中出現大寫和小寫的字母。
如果不存在這樣的字母,返回‘~‘。
please return uppercase
|str|<=1000
示例
例 1:
輸入:"aAbBcD"
輸出:'B'
解釋:因為c和D沒有大小寫同時出現,
A和B都有大小寫,但是B比A大,所以返回B。
例2:
輸入:"looGVSSPbR"
輸出:'~'
https://tianchi.aliyun.com/oj/245867719779445300/277517718521057998
2. 解題
- 記錄每個字元出現大寫小寫了嗎? 小寫+1,大寫+2,最後統計 = 3 的最大字元
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++
我的CSDN部落格地址 https://michael.blog.csdn.net/
長按或掃碼關注我的公眾號(Michael阿明),一起加油、一起學習進步!