当前位置: 首页 > news >正文

HJ17 坐标移动【牛客网】

文章目录

  • 零、原题链接
  • 一、题目描述
  • 二、测试用例
  • 三、解题思路
  • 四、参考代码

零、原题链接


HJ17 坐标移动

一、题目描述

在这里插入图片描述

二、测试用例

在这里插入图片描述

三、解题思路

  1. 基本思路:
      这题的难点在于理解题目和如何处理各种情况。题目是给定一串指令,首先要判断指令是否合法,合法指令要满足三个条件,然后,如果指令合法,则按照指令进行移动。最终得到最后的位置坐标。
  2. 具体思路:
    • 解决输入,可以使用 stringstream 进行字符串分割
    • 判断指令是否合法:
      • 指令长度只能是 2 或者 3
      • 指令除了第一个字符,其他字符只能为数字;【如果合法顺便将字符串转为整型】
      • 指令第一个字符只能是 'W''A''S''D' 。【如果合法则进行移动】
    • 处理完所有指令,则输出最终坐标;

四、参考代码

时间复杂度: O ( n ) \Omicron(n) O(n)【n 是指令序列长度】
空间复杂度: O ( n ) \Omicron(n) O(n)

#include <cctype>
#include <iostream>
#include <sstream>
#include <string>
using namespace std;int main() {stringstream ss;string str;cin >> str;ss << str;int x = 0, y = 0;while (getline(ss, str, ';')) {if (str.length() != 2 && str.length() != 3)continue;int num = 0;if (str.length() == 3 && isdigit(str[1]) && isdigit(str[2])) {num += (str[1] - '0') * 10 + str[2] - '0';} else if (str.length() == 2 && isdigit(str[1])) {num += str[1] - '0';} else {continue;}if (str[0] == 'W') {y += num;} else if (str[0] == 'A') {x -= num;} else if (str[0] == 'S') {y -= num;} else if (str[0] == 'D') {x += num;}}cout << x << ',' << y;
}
// 64 位输出请用 printf("%lld")

相关文章:

  • C++之set与map介绍
  • 《光与影:33号远征队》栩栩如生的角色动画是如何创建的?
  • vue+springboot+element-ui实现table的树懒加载
  • Redis学习专题(三)主从复制
  • Java大师成长计划之第28天:处理多线程的Web应用
  • python-数据可视化(大数据、数据分析、可视化图像、HTML页面)
  • 生产专属ERP系统源码,一套集成企业财务、供应链、生产、销售等核心业务流程的管理系统
  • 第三十天打卡
  • 【Java高阶面经】1.微服务架构核心:服务注册与发现之AP vs CP选型全攻略
  • 电子电器架构 --- 汽车高性能计算
  • 关于 APK 反编译与重构工具集
  • Spring Boot-Swagger离线文档(插件方式)
  • C++(3)
  • 鸿蒙开发进阶:深入解析ArkTS语言特性与开发范式
  • 关于 Web 漏洞原理与利用:3. CSRF(跨站请求伪造)
  • Python _day31
  • 第40天-Python开发音乐播放器完整指南
  • Java 10IO流
  • [Java] idea的调试介绍
  • P2670 [NOIP 2015 普及组] 扫雷游戏
  • 国家话剧院发讣告悼念朱媛媛:始终秉持“戏比天大”的信念
  • 中公教育:现阶段在全力解决学员退费问题,部分地区历史退费已逐步出清
  • 王毅将出席《关于建立国际调解院的公约》签署仪式
  • 国家发改委:安全是低空经济发展的首要前提,稳妥推进低空旅游、航空运动等发展
  • 国家发改委:不断完善稳就业稳经济的政策工具箱,确保必要时能够及时出台实施
  • 减负举措如何助力基层干部轻装上阵?记者一线调查