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;}


原创粉丝点击