HDU 3242 两个字符串的相加和相减
来源:互联网 发布:dsdt提取 mac 编辑:程序博客网 时间:2024/06/18 02:18
这道题目可以利用 vetor来做,因为它是动态的数组,可以进行插入和删除及更多功能#include <iostream>#include <cstdio>#include <cstring>#include <string>#include <vector>#include <algorithm>using namespace std;string str1,str2,str3;vector<string>vt;vector<string>::iterator it;void push(string str) {//这是将第一个字符串放在vector中 int len; len=str.size(); string s=""; for(int i=1; i<len; i++) { if(str[i]==','||str[i]==']') { if(s!="")vt.push_back(s); s=""; } else { s+=str[i]; } }}void add(string str) {//这是进行相加的操作 int len; len=str.size(); string s=""; for(int i=1; i<len; i++) { if(str[i]==','||str[i]==']') { if(s!="")vt.push_back(s); s=""; } else { s+=str[i]; } }}void sub(string str) {//这是相减的操作 int len; len=str.size(); string s=""; for(int i=1; i<len; i++) { if(str[i]==','||str[i]==']') { for(it=vt.begin(); it!=vt.end(); it++) { if(s==*it) { vt.erase(it); break; } } s=""; } else { s+=str[i]; } }}int main() { while(cin>>str1) { vt.clear(); if(str1==".")break; push(str1); cin>>str2>>str3; if(str2=="++") { add(str3); } else sub(str3); if(vt.begin()==vt.end()) { cout<<"[]"<<endl; continue; } else { cout<<"["; for(it=vt.begin(); it!=vt.end(); it++) { if(it+1!=vt.end()) { cout<<*it<<","; } else { cout<<*it<<"]"<<endl; } } } } return 0;}