zju 1004 Anagrams by Stack 我的很不规范的程序

zju 1004 Anagrams by Stack 我的很不规范的程序

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

string stack,requare,start,newStr;
string table;
int num=0,i=0;
void check(string& start,string& stack);
void print(){
  if(newStr==requare)
  cout<<table<<endl;
}
void pushStack(char item,string& start,string& stack){
 table+='i';
 stack+=item;
 check(start,stack);

}
void popStack(string& start,string& stack){
 table+='o';
 newStr+=stack[stack.size()-1];
 stack.erase(stack.size()-1);
 check(start,stack);
}
void delPush(){
  table.erase(table.size()-1);
  stack.erase(stack.size()-1);

}
void delPop(){
  stack+=newStr[newStr.size()-1];
  table.erase(table.size()-1);
  newStr.erase(newStr.size()-1);
}

void check(string& start,string& stack){
 if (num==start.size()*2) {
  print(); 
  return;
 }
 
  
    if((newStr.size()+stack.size())!=start.size()){
    num++;
    pushStack(start[i++],start,stack);
    delPush();
    num--;
    i--;
    }
    if(stack.empty()&&i<start.size()) return;
    num++;
    popStack(start,stack);
    delPop();
    num--;
 
 
}


int main(){


 cin>>start>>requare;

 check(start,stack);
 return 0;
}

 

很不规范的地柜,还有好多个清理状态的函数。。。
什么时候才能改进阿!!!!!!!!

你可能感兴趣的:(zju 1004 Anagrams by Stack 我的很不规范的程序)