c/c++:离开停车场

题目描述(题目链接)

你被困在一个多层停车场。您的任务是仅使用楼梯离开停车场。出口总是在一楼的右下角。
创建一个采用矩阵的函数,其中:

0 表示免费停车位。
1 表示楼梯。
2 表示您的起始位置,可以在停车场的任何一层。
出口总是在一楼的右下角。
您必须使用楼梯 1 才能下一层。
除了一楼,每一层只有一个楼梯,一楼没有任何楼梯。 请你设计并返回一个最快离开停车场的字符串。

输入输出格式

输入格式

第一行 N 表示循环的次数。
第二行有 test_data 表示 测试数据的字符串,这些字符串中间都用空格隔开。

输出格式

返回离开停车场的字符串。

输入输出样例1

输入

2
1 0 0 0 2
0 0 0 0 0

输出

L4 D1 R4 

输入输出样例2

输入
3
2 0 0 1 0
0 0 0 1 0
0 0 0 0 0
输出
R3 D2 R1
解释
表示向右走三下,向下走两下,再向右走一下。

说明/提示

arr = [[1, 0, 0, 0, 2],[0, 0, 0, 0, 0]
]
# 从2开始,向左移动4次=“L4”
# 从楼梯下 1 步 = “D1”
# 向右移动 4 次从右下角退出 = "R4"

解题思路:
这题他没说给的测试数据的一行元素有多少个,但目测的话,这道题估计所有测试数据都是一行元素大概是5个,但还是严谨点,

  • 题目说了是矩阵,那么可以通过先获取一行元素来判断出一行元素有多少个,
  • 因为一层楼只有一个楼梯,那么下楼的路径是定了的,所以不用担心什么最快,先从矩阵找出2,也就是起始值,然后找1下楼,怎么输出路径的话看说明提示,讲的很清楚
  • 注意若没有移动则不输出,也就是没有L0,D0,R0

解题代码:

C++代码:

#include<bits/stdc++.h>
using namespace std;
#define N 100
int a[N][N];
int n,x;//n是行,x是列
void print(int right,int left)//输出左走或右走
{if(right)cout<<'R'<<right<<" ";elsecout<<'L'<<left<<" ";
}
void fun(int row,int column)
{int i,right=0,left=0,down=0;for(i=0;i<x;i++)if(a[row][i]==1)//找到楼梯break;if(column>i)//判断下楼是向左走,还是向右走left+=column-i;elseright+=i-column;print(right,left);if(row<n-1)//由于我是正着将元素存入的数组,最高楼层对应的行为0,所以下楼行下标增大{while(a[row][i]==1)//处理出现一个楼梯接着下一楼梯的情况{row++;//连续下楼down+=1;}cout<<'D'<<down<<" ";if(row==n-1)//下到一楼时{if(i!=x-1)//若不是刚好楼梯下完刚好是出口cout<<'R'<<x-i-1<<" ";            }else//未下到一楼fun(row,i);}
}
int main()
{cin>>n;string c;cin.ignore();//在接收完n后,其后有一个换行符,可以用ignore()去掉换行符getline(cin,c);//用字符串先获取第一行元素for(int i=0;c[i];i++)if(isdigit(c[i])){a[0][x]=c[i]-'0';x++;//得出列}for(int i=1;i<n;i++)//再获取剩下得元素for(int j=0;j<x;j++)scanf("%d",&a[i][j]);for(int i=0;i<n;i++)for(int j=0;j<x;j++){if(a[i][j]==2)//找到起点{fun(i,j);return 0;            }}return 0;
}

C代码:

为了好想一点,这里就倒着存入数组了,这样下楼时行下标就是递减了

#include<stdio.h>
#include<string.h>
#include<ctype.h>//isdigit()判断数字字符函数的头文件
# define N 100
int a[N][N];
int n,c;
void fun(int row,int column)
{int right=0,left=0,down=0;int i;for(i=0;i<c;i++)if(a[row][i]==1)break;if(column>i)printf("L%d ",column-i);elseprintf("R%d ",i-column);if(row>0){while(a[row][i]==1){row--;down++;}printf("D%d ",down);if(row==0){if(i!=c-1)printf("R%d ",c-i-1);}elsefun(row,i);}
}
int main()
{scanf("%d",&n);getchar();char s[N]={0};fgets(s,N,stdin);for(int i=0;s[i];i++){if(isdigit(s[i])){a[n-1][c]=s[i]-'0';c++;}}for(int i=n-2;i>=0;i--)for(int j=0;j<c;j++)scanf("%d",&a[i][j]);for(int i=n-1;i>=0;i--)for(int j=0;j<c;j++){if(a[i][j]==2)fun(i,j);}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/18606.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面试问到Spring中的@Autowired注解,可以这样答

前言 在Spring框架中&#xff0c;依赖注入是一个核心概念&#xff0c;它允许将一个对象的依赖关系外部化并由Spring容器来管理。Autowired注解是实现这一点的关键工具之一。当然&#xff0c;这块知识也是面试官们老生常谈的问题。 下面就跟着博主的步伐&#xff0c;一起来探讨…

GCANet去雾算法

目录 1. 引言 2. 门控上下文注意机制&#xff08;GCA&#xff09; 3. 去雾流程 4. 模型代码 5. GCANet的优势 6. 去雾效果 1. 引言 GCANet(Gate-Controlled Attention Network)是一种用于图像去雾的深度学习算法&#xff0c;通过引入注意力机制来改进传统的去雾方法&…

C#实现纳秒级的计时器功能

常用的 Windows API 方法 GetTickCount() 返回系统启动后经过的毫秒数。另一方面&#xff0c;GetTickCount() 函数仅有 1ms 的分辨精度&#xff0c;精度也很不好。 我们要另外寻找一种方法来精确测量时间。 Win32 API 使用 QueryPerformanceCounter() 和 QueryPerformanceFre…

大模型场景应用汇总(持续更新)

一、应用场景 1.办公场景 智能办公&#xff1a;文案生成&#xff08;协助构建大纲优化表达内容生成&#xff09;、PPT美化&#xff08;自动排版演讲备注生成PPT&#xff09;、数据分析&#xff08;生成公式数据处理表格生成&#xff09;。 智能会议&#xff1a;会议策划&…

P10442 「MYOI-R3」字符串

「MYOI-R3」字符串 题目描述 给定字符串 s , t s,t s,t。 现在你要在 s , t s,t s,t 中删除一些字符并将它们重新排列使 s t st st。 问操作后的 ∣ s ∣ |s| ∣s∣&#xff08;即字符串 s s s 的长度&#xff09;最大是多少&#xff1f; 输入格式 第一行一个字符串…

深入探索 MongoDB:高级索引解析与优化策略

MongoDB 是一种非常流行的 NoSQL 数据库&#xff0c;它支持丰富的索引类型和功能&#xff0c;以提高数据查询的效率和性能。本文将详细介绍 MongoDB 的高级索引&#xff0c;包括基本语法、常用命令、示例、应用场景、注意事项和总结。 基本语法 在 MongoDB 中&#xff0c;可以…

密码学基础概念

加密性 什么是加密&#xff1f; 1.对原有的明文数据&#xff0c;执行某种运算&#xff0c;得到密文数据。 2.密文数据对于未授权人员而言&#xff0c;在一定上程度上加大了解读的难度 3.加密功能用于实现机密性 什么是密钥&#xff1f; 1.如同持有保险柜钥匙才能打开保险柜…

数据结构算法题day05

数据结构算法题day05 题目算法思想代码 题目 从有序表中删除所有其值重复的元素&#xff0c;使表中所有元素的值均不同。算法思想 第一个元素&#xff08;不重复&#xff09;依次向后扫描&#xff0c;不重复就保留&#xff0c;重复&#xff08;不保留&#xff09;就删除所有重…

排序进阶----插入排序,希尔排序

各位看官们好&#xff0c;接下来鄙人想与大家分享的实现被称为六大排序之一的插入排序。其实关于这六大排序在我们最开始就已经接触过了。我们在最开始学习c语言的时候&#xff0c;我们要学习到其中之一的冒泡排序。虽然现在看起来冒泡排序确实是没有太大的实际效果&#xff0c…

【Xilinx约束】create_generated_clock 约束语法介绍

在 Xilinx Vivado 环境中&#xff0c;使用 create_generated_clock 约束来定义由锁相环&#xff08;PLL&#xff09;或时钟管理模块&#xff08;如 MMCM 或 DCM&#xff09;生成的时钟。这个约束用于指定生成时钟的属性&#xff0c;例如时钟的源、相位和频率。 基本语法 以下是…

618必买的数码好物有哪些?盘点兼具设计与实用的数码好物分享

随着618购物节的到来&#xff0c;数码爱好者们又开始跃跃欲试&#xff0c;期待在这个年度大促中寻找到自己心仪的数码好物&#xff0c;在这个数字化时代&#xff0c;数码产品不仅是我们日常生活的必需品&#xff0c;更是提升生活品质的重要工具&#xff0c;那么在众多的数码产品…

【MySQL】 1130 -Host ‘14.*.**.*‘ is not allowed to connect to this MySQL server

这个错误表明MySQL服务器拒绝了来自IP地址为14.*.**.*的主机的连接请求。这通常是由于MySQL用户的主机限制引起的。 要解决这个问题&#xff0c;你需要在MySQL中允许指定主机的连接。你可以按照以下步骤操作&#xff1a; 使用具有足够权限的用户&#xff08;如root用户&#x…

HNU-计算机体系结构-实验1-RISC-V流水线

计算机体系结构 实验1 计科210X 甘晴void 202108010XXX 1 实验目的 参考提供为了更好的理解RISC-V&#xff0c;通过学习RV32I Core的设计图&#xff0c;理解每条指令的数据流和控制信号&#xff0c;为之后指令流水线及乱序发射实验打下基础。 参考资料&#xff1a; RISC-…

Ubuntu20.04升级到22.04之后出现的问题

项目场景&#xff1a; 之前一致使用的是Ubuntu20.04&#xff0c;虽然丑了点&#xff0c;但是用着没什么问题&#xff0c;最近没能按捺住好奇心&#xff0c;升级到了22.04&#xff0c;升级后颜值有所提高&#xff0c;但是也带来了一些问题。 从20.04升级到22.04&#xff0c;起始…

【学习笔记】Axios、Promise

TypeScript 1、Axios 1.1、概述 1.2、axios 的基本使用 1.3、axios 的请求方式及对应的 API 1.4、axios 请求的响应结果结构 1.5、axios 常用配置选项 1.6、axios.create() 1.7、拦截器 1.8、取消请求2、Promise 2.1、封装 fs 读…

sendmail发送邮件配置详解?如何正确设置?

sendmail发送邮件如何保障安全&#xff1f;AokSend有何安全措施&#xff1f; 为了确保sendmail发送邮件的高效性和安全性&#xff0c;正确配置是至关重要的。本文将详细介绍sendmail发送邮件的配置步骤&#xff0c;并探讨如何保障sendmail发送邮件的安全性。同时&#xff0c;我…

界面控件DevExpress WinForms的流程图组件 - 可完美复制Visio功能(一)

DevExpress WinForms的Diagram&#xff08;流程图&#xff09;组件允许您复制Microsoft Visio中的许多功能&#xff0c;并能在下一个Windows Forms项目中引入信息丰富的图表、流程图和组织图。 P.S&#xff1a;DevExpress WinForms拥有180组件和UI库&#xff0c;能为Windows F…

Express 静态资源存放

如何在 express 中提供对外可以访问的静态资源&#xff1f;只要利用expres.static这个中间件就可以了。 例如&#xff0c;通过如下代码就可以将 static 目录下的图片、CSS 文件、JavaScript 文件对外开放访问了。 app.use(express.static(static)); 现在可以访问 static 目录…

C++项目(游戏角色仓库管理)

#include<iostream> using namespace std; #include<string> #define MAX 6 //设计游戏角色结构体 struct Hero {string name;int gongji;int fangyu;int tili;int tianfu; }; //设计仓库结构体 struct WareHouse {struct Hero array[MAX];int m_size; };//1.添加全…

2024年中国金融行业网络安全研究报告

网络安全一直是国家安全的核心组成部分&#xff0c;特别是在金融行业&#xff0c;金融机构拥有大量的敏感数据&#xff0c;包括个人信息、交易记录、财务报告等&#xff0c;这些数据的安全直接关系到消费者的利益和金融市场的稳定&#xff0c;因此金融行业在网络安全建设领域一…