ZJU ACM 1004

原创 2007年09月17日 15:53:00

/** ZOJ-1004 Anagrams By Stack
http://acm.zju.edu.cn/show_problem.php?pid=1004
Yimin.Li
**/
#include <iostream>
#include <stack>
#include <vector>
#include <string>

using namespace std;

class AnagramsByStack
{
private:
 vector<char> track;            // "i"¡¢"o"¹ì¼£
 int idxSource, idxDest;        // Ô´×Ö·û´®¡¢Ä¿±ê×Ö·û´® Ë÷Òý
 string strSource, strDest;    // Ô´×Ö·û´®¡¢Ä¿±ê×Ö·û´®
 int strLen;                    // ×Ö·û´®³¤¶È
 
public:
 static stack<char> charStk;    // ²Ù×÷Õ»
 
public:
 void initialize(const string &strSource,
  const string &strDest)
 {
  this->strSource = strSource;
  this->strDest = strDest;
  
  idxSource = 0;
  idxDest = 0;
  
  strLen = strSource.length();
 }
 
 void execute()
 {
  if( idxDest>=strLen )
  {
   vector<char>::iterator iter;
   for(iter=track.begin(); iter!=track.end(); ++iter)
   {
    cout << *iter << ' ';
   }
   cout << endl;
   return ;
  }
  
  if( idxSource<strLen )
  {
   charStk.push(strSource[idxSource++]);
   track.push_back('i');
   execute();
   charStk.pop();
   track.pop_back();
   --idxSource;
  }
  
  if( !charStk.empty() )
  {
   char ch = charStk.top();
   if( strDest[idxDest]==ch )
   {
    charStk.pop();
    track.push_back('o');
    ++idxDest;
    execute();
    --idxDest;
    track.pop_back();
    charStk.push(ch);
   }
  }
  return ;
 }
};

stack<char> AnagramsByStack::charStk;

int main()
{
 string strSource, strDest;
 AnagramsByStack app;
 
 while(cin>>strSource>>strDest)
 {
  cout << "[/n" ;
  if ( strSource.length()==strDest.length() )
  {
   app.initialize(strSource, strDest);
   app.execute();
  }
  cout << "]/n" ;
 }
 
 return 0;
}
 

相关文章推荐

ZJU 1004 Anagrams by Stack

#include #include #include #include #include #include using namespace std;/*by ashione 2011-6-13 st ...

ACM ZJU 1789 Suspects

  • 2012年11月11日 13:58
  • 32KB
  • 下载

浙江大学ACM题解/ZJU 题型分类

  • 2008年12月08日 12:35
  • 835KB
  • 下载

Crashing Balloon from http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=3

On every June 1st, the Children's Day, there will be a game named "crashing balloon" on TV.   The ru...
  • cstur4
  • cstur4
  • 2012年09月23日 21:46
  • 552

acm ZJU分类

  • 2008年08月01日 16:01
  • 15KB
  • 下载

acm zju 额度cn

  • 2009年03月24日 11:54
  • 272KB
  • 下载

Fire Net from http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=2

Suppose that we have a square city with straight streets. A map of a city is a square board with n r...
  • cstur4
  • cstur4
  • 2012年09月23日 20:30
  • 658

acm1004题答案

  • 2013年05月08日 20:17
  • 169KB
  • 下载

杭电acm1004

  • 2014年10月27日 21:51
  • 1018B
  • 下载

acm.zju.3507

这道题目意思读懂了就很容易做了,就是将数字转化成对应的罗马符号,对应转化关系表格已经全部给出来了,那么知道题目要注意的就是对于一个多位数是从高位到地位顺次转化,其实就是一道模拟题,easy,但是我wr...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ZJU ACM 1004
举报原因:
原因补充:

(最多只允许输入30个字)