检查句子中的数字是否递增
class Solution {
public:
bool areNumbersAscending(string s) {
int pre=-1;
int cur=0;
bool status=false;
for(int i=0;i<s.size();i++){
while(i<s.size()&&isdigit(s[i])){
cur=cur*10+s[i]-'0';
i++;
status=true;
}
if(status){
if(pre>=cur)
return false;
else{
pre=cur;
cur=0;
status=false;
}
}
}
return true;
}
};
简易银行系统
class Bank {
private:
vector<long long> rep;
public:
Bank(vector<long long>& balance) {
// for(auto ele : balance)
// rep.push_back(ele);
rep=balance;
}
bool transfer(int account1, int account2, long long money) {
if(account1>rep.size() || account2>rep.size())
return false;
if(rep[account1-1]>=money){
rep[account1-1]-=money;
rep[account2-1]+=money;
return true;
}
return false;
}
bool deposit(int account, long long money) {
if(account<=rep.size()){
rep[account-1]+=money;
return true;
}
return false;
}
bool withdraw(int account, long long money) {
if(account>rep.size())
return false;
if(rep[account-1]<money)
return false;
rep[account-1]-=money;
return true;
}
};
统计按位或能得到最大值的子集数目
class Solution {
private:
int maxval=0;
int res=0;
private:
void dfs(vector<int> &nums, int index, int input)
{
if (input == maxval)
++res;
for (int i = index; i < nums.size(); i++)
dfs(nums, i + 1, input | nums[i]);
}
public:
int countMaxOrSubsets(vector<int>& nums) {
for (auto ele : nums)
maxval = maxval | ele;
dfs(nums,0,0);
return res;
}
};
到达目的地的第二短时间
算了算了,这题不看了…收工