博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
P1032 字串变换
阅读量:5062 次
发布时间:2019-06-12

本文共 1740 字,大约阅读时间需要 5 分钟。

题目描述

已知有两个字串 A, B 及一组字串变换的规则(至多6个规则):

     A1 -> B1

     A2 -> B2

规则的含义为:在 A$中的子串 A1 可以变换为 B1、A2 可以变换为 B2 …。

例如:A='abcd'B='xyz'

变换规则为:

‘abc’->‘xu’‘ud’->‘y’‘y’->‘yz’

则此时,A 可以经过一系列的变换变为 B,其变换的过程为:

‘abcd’->‘xud’->‘xy’->‘xyz’

共进行了三次变换,使得 A 变换为B。

输入输出格式

输入格式:

键盘输人文件名。文件格式如下:

A B A1 B1 \

   A2 B2 |-> 变换规则

... ... /

所有字符串长度的上限为 20。

输出格式:

输出至屏幕。格式如下:

若在 10 步(包含 10步)以内能将 A 变换为 B ,则输出最少的变换步数;否则输出"NO ANSWER!"

输入输出样例

输入样例#1:
abcd xyzabc xuud yy yz
输出样例#1:
3 以前做过这道题, 但是是打表才过的最后一个点。 今天重做了一遍。 才悟到一个真理: 永远不要对STL产生过度依赖!
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 using namespace std; 8 string bg,ed; 9 struct guize10 {11 string a,b;12 }gz[1001];13 struct node14 {15 string zfc;16 int step;17 }now,nxt;18 int num=1;19 map
mp;20 int tot=0;21 void bfs()22 {23 queue
q;24 now.zfc=bg;now.step=0;25 q.push(now);26 while(q.size()!=0)27 {28 node p=q.front();29 //cout<
<<"*4654654"<
10)36 {37 printf("NO ANSWER!");38 exit(0);39 }40 q.pop();41 mp[p.zfc]=1;42 for(int i=1;i<=num-1;i++)43 {44 string tmp=p.zfc;45 //int where=p.zfc.find(gz[i].a);46 for(int j=0;j
=4384380)55 {56 printf("NO ANSWER!");57 exit(0);58 }59 if(p.zfc[j+k]!=gz[i].a[k])60 {61 flag=1;break;62 }63 64 65 }66 if(flag==0)67 {68 int where=j;69 nxt.zfc=p.zfc.replace(where,gz[i].a.length(),gz[i].b);70 p.zfc=tmp;71 if(mp[nxt.zfc]==0)72 {73 74 mp[nxt.zfc]=1;75 nxt.step=p.step+1;76 //cout<
<<"****"<
<<"***"<
<
>bg>>ed;90 while(cin>>gz[num].a>>gz[num].b)91 num++;92 //for(int i=1;i<=num-1;i++)93 // cout<
<<"+++"<
<

 

 

转载于:https://www.cnblogs.com/zwfymqz/p/7071718.html

你可能感兴趣的文章
关于源程序到可运行程序的过程
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
【贪心+DFS】D. Field expansion
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
ibatis学习笔记
查看>>
18-ES6(1)
查看>>
poj1611 简单并查集
查看>>
Ubuntu 14.04下安装CUDA8.0
查看>>
跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
查看>>
C# BS消息推送 SignalR介绍(一)
查看>>
WPF星空效果
查看>>
WPF Layout 系统概述——Arrange
查看>>
PIGOSS
查看>>
几款Http小服务器
查看>>
iOS 数组排序
查看>>