题面
程序
class Solution {
public:
int secondHighest(string s) {
set<int> st;
for(int i=0;i<s.size();i++){
if(isdigit(s[i])){
st.insert(s[i]-'0');
}
}
if(st.size()<=1) return -1;
auto a=st.end();
a--;
a--;
return *a;
}
};
note
- isdigit()可以返回一个字符是否为数字
- 关于set迭代器:
- st.begin()为返回set中第一个元素的迭代器
- st.rbegin()为返回set中最后一个元素的逆序迭代器(逆序迭代器就是迭代器++,返回前一个迭代器而非后一个)
- st.end()为返回set中最后一个元素的下一个位置的迭代器
- st.rend()为返回set中第一个元素前一个位置的逆序迭代器