五福
#include<iostream>
#include<string>
//集齐五福多少套
//给出0 1 序列
using namespace std;
int fu(string &str){
//cout << str << endl;
int matrix[6]={0};
//int people_num = 1;
int fu_num = 1;
for (auto i : str){
if (i == '1')
{
//cout << 'i ' << i << endl;
matrix[fu_num] = matrix[fu_num] + 1;
fu_num = fu_num + 1;
}
else if (i == '0')
{
fu_num = fu_num + 1;
}
else{
fu_num = 1;
continue;
}
}
int min_num = matrix[1];
for (int j = 1; j < 6; j++){
if (min_num > matrix[j]){
min_num = matrix[j];
}
cout << matrix[j] << endl;
}
return min_num;
}
int main(){
string str = " 01010 10101 11100 11111 00011";
//01101 00011 10100
int maxum;
maxum = fu(str);
cout << maxum << endl;
while(1);
return 0;
}
后缀式计算
#include<iostream>
#include<stack>
#include<vector>
#include<string>
#include<sstream>
#include<map>
using namespace std;
#
class MyCal
{
public:
MyCal();
~MyCal();
//定义一个函数接口,安全性考虑
int calmain(string str){
//int INTresult;
int re = calRpnMain(str);
return re;
}
private:
int temp_num;
int temp_op;
stack<int> num_stack;
stack<char> op_stack;
//map<char, int> queryPriority = map<char, int>{{ '*', INT_MIN + 1 }, { '+', INT_MIN + 2 }, {'-',INT_MIN + 2}};
int calRpnMain(string str)
{
for (auto it : str){
//判断当前字符是数字,是数字就进入数字栈
if (it >= '0' && it <= '9') {
temp_num = it - '0';
num_stack.push(temp_num);
}
else if (it >= 'A' && it <= 'F'){
temp_num = it - 'A'+10;
num_stack.push(temp_num);
}
//处理运算符
else{
if (!num_stack.empty()){
int num1 = num_stack.top();
//cout <<"num1 = " <<num1 <<endl;
num_stack.pop();
int num2 = num_stack.top();
num_stack.pop();
int result1;
result1 = cal(num1, num2, it);
//cout << "result1 = " << result1 << endl;
num_stack.push(result1);
}
}
}
return num_stack.top();
}
int cal(int op1, int op2, char it){
switch(it)
{
case '*':
{
int result2;
result2 = op1 * op2;
return result2;
}
case '-':
{
int result2;
result2 = op2 - op1;
return result2;
}
case '+':
{
int result2;
result2 = op1 + op2;
return result2;
}
default:
break;
}
}
};
MyCal::MyCal()
{
}
MyCal::~MyCal()
{
}
int main(){
MyCal opcal;
string str ;
while (getline(cin, str))
{
cout << opcal.calmain(str)<<endl;
}
while (1);
return 0;
}