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

北大ACM 1004 Financial Management

Financial Management Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 10...
  • q745401990
  • q745401990
  • 2013年08月18日 09:37
  • 1209

杭电ACM题1004

杭电题1004 Problem Description Contest time again! How excited it is to see balloons floating around. ...
  • u010343650
  • u010343650
  • 2016年04月04日 14:33
  • 685

杭电ACM1004

Let the Balloon Rise. 求字符串数组里出现次数最多的字符串。要求:从键盘输入N(气球颜色的个数)(0,后面N行输入颜色的英文(长度小于16)。如果N=0,则退出。 1.在用c/c+...
  • JDOUN
  • JDOUN
  • 2015年11月06日 10:50
  • 1655

zju 1004 zoj 1004

Anagrams by Stack Time Limit: 2 Seconds      Memory Limit: 65536 KB How can anagrams result...
  • sonfree
  • sonfree
  • 2011年12月15日 10:00
  • 158

HDU 1004 C语言

HDU 1004 Let the Balloon Rise Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32...
  • shallow_line
  • shallow_line
  • 2017年07月12日 20:14
  • 292

URAL 1004: Sightseeing Trip

题目链接:http://acm.timus.ru/problem.aspx?num=1004 题目大意: 求无向图最小环,若有解需输出方案 算法: floyd的基础应用, 注...
  • frog1902
  • frog1902
  • 2013年07月27日 11:11
  • 1173

第一个zju的acm程序(ID:1001)

ZOJ Problem Set - 1001 A + B Problem Time Limit: 2 Seconds      Memory Limit: 65536 KB ...
  • loveit111
  • loveit111
  • 2015年02月08日 20:03
  • 512

hdu 1004 map写法

http://acm.hdu.edu.cn/showproblem.php?pid=1004 Problem Description Contest time again! How e...
  • u013573047
  • u013573047
  • 2014年04月20日 19:45
  • 860

ZJU PAT 1004

输出每一层叶子节点数, DFS
  • royliu1
  • royliu1
  • 2014年11月23日 11:58
  • 189

ZJU 1004 Anagrams by Stack

#include #include #include #include #include #include using namespace std;/*by ashione 2011-6-13 st ...
  • a342374071
  • a342374071
  • 2011年06月13日 17:04
  • 803
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:ZJU ACM 1004
举报原因:
原因补充:

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