股票最大收益

股票最大收益

题目:

假设知道某段连续时间内股票价格,计算通过买入卖出可获得的最大收益。
输入一个大小为 n 的数 price(p1, p2, p3, p4…….pn), pi 是第i天的股票价格。
pi 的格式为股票价格(非负整型)加上货币单位 Y 或者 S, 其中 Y 代表人民币, S 代表美元, 这里规定
1 美元可以兑换 7 人民币。
pi 样例 1:123Y 代表 123 元人民币
pi 样例 2:123S 代表 123 元美元, 可兑换 861 人民币
假设你可以在任何一天买入或者卖出胶票, 也可以选择放弃交易, 请计其在交易周期 n 天内你能获得的最大收入以人民币计算。
输入描述:
输入一个包含交易周期内各天股票价格的字符串,以空格分隔。不考虑输入异常情况。
输出描述:
输出一个整型数代表在交易周期 n 天内你能获得的最大收益,n 不能超过 10000
备注:股票价格只会用 Y 人民币或 S 美元进行输入,不考虑其他情况。
示例 1
输入:
2Y 3S 4S 6Y 8S
输出:
76

#include<iostream>
#include<vector>
#include<string>
#include<sstream>
using namespace std;

vector<int> StrToVec(string& str){
	stringstream sstream(str);
	string token="";
	vector<int> vec_m;
	vec_m.clear();
	while(getline(sstream,token,' ')){
		int num=0;
		for(size_t i=0;i<token.size()-1;i++){
			num=num*10+token[i]-'0';
		}
		size_t j=token.size()-1;
		if(token[j]=='S'){
			num*=7;
		}
		vec_m.push_back(num);
	}
	return vec_m;
}
int main(){
	string str;
	getline(cin,str);
	size_t earn=0;
	size_t pay=0;
	vector<int> vec_m=StrToVec(str);
	for(size_t i=0;i<vec_m.size();i++){
		if(i==vec_m.size()-1 && pay!=0){
			earn+=vec_m[i]-pay;
			pay=0;
		}
		else if(i<vec_m.size()-1 && vec_m[i]>vec_m[i+1] && pay!=0){
			earn+=vec_m[i]-pay;
			pay=0;
		}
		else if(pay==0){
			pay=vec_m[i];
		}
	}
	cout<<earn<<endl;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值