UVa227:谜题(Puzzle)

博客讲述了如何解决UVa227谜题问题,包括5x5网格的初始状态、四种移动指令以及非法指令的处理。重点在于数据输入的特殊处理,如使用cin.get()和getline()函数读取包含空格的输入。博主强调了编程中的注意事项,如利用全局变量存储网格状态,并建议将指令执行封装为独立函数,以提高代码复用性。最后给出了程序代码实现。
摘要由CSDN通过智能技术生成

题目:

题意:有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指令执行完毕后的网格。如果有非法指令,应输出“This puzzle has no final configuration.”如下图所示:分别为执行ARRBBL0前、后的效果图:在这里插入图片描述

Sample Input:
TRGSJ
XDOKI
M VLN
WPABE
UQHCF
ARRBBL0

ABCDE
FGHIJ
KLMNO
PQRS  
TUVWX
AAA
LLLL0

ABCDE
FGHIJ
KLMNO
PQRS 
TUVWX
AAAAABBRRRLL0

Z

Sample Output:
Puzzle #1:
T R G S J
X O K L I
M D V B N
W P   A E
U Q H C F

Puzzle #2:
  A B C D
F G H I E
K L M N J
P Q R S O
T U V W X

Puzzle #3:
This puzzle has no final configuration.

注意事项:

本题中不能简单的使用cin>>来读取数据:读取初始网格时,注意读取一行带有空格的指令;读取指令时,遇到“0”才截至,注意将多行读入的指令处理为一行指令。
cin.get():从输入缓冲区读取单个字符串,且不忽略

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值