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

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")
http://www.xdnf.cn/news/7538.html

相关文章:

  • 【漫话机器学习系列】269.K-Means聚类算法(K-Means Clustering)
  • 健康养生指南:科学生活,活力常驻
  • BI行业分析思维框架 - 环保行业分析(一)
  • 【JavaWeb】MyBatis
  • Python类的力量:第六篇:设计模式——Python面向对象编程的“架构蓝图”
  • 人工智能核心知识:AI Agent 的四种关键设计模式
  • ssm项目环境搭建
  • 【漫话机器学习系列】270.KNN算法(K-Nearest Neighbors)
  • JDK8到JDK17最常用的核心功能
  • mariadb-cenots8安装
  • 基于开源链动2+1模式AI智能名片S2B2C商城小程序的社群构建与新型消费迎合策略研究
  • 【Linux】第二十二章 访问网络附加内存
  • OpenCv高阶(8.0)——答题卡识别自动判分
  • 驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析
  • 前端开发——前端样式BUG调试全指南2025终极版
  • 什么是数据中台
  • TYUT-企业级开发教程-第8章
  • RK3568 OH5.1 搭建环境及源码获取
  • C/C++ 整数类型的长度
  • 基于CodeBuddy的Craft完成一个数字华容道的小游戏
  • File的使用
  • 79、modelsim单独仿真altera带IP核的文件
  • 如何解决全局或静态变量被修改的bug
  • 基于R语言的空间异质性数据分析技术
  • Vue 3 ~ 3.5 版本useTemplateRef使用
  • Vue3.0教程005:watch监视ref定义的【基本类型】数据和【对象类型】数据
  • Vortex GPGPU的github流程跑通与功能模块波形探索(三)
  • 系统设计——项目设计经验总结1
  • arcgispro双击打开没反应怎么办
  • 基于 ABP vNext + CQRS + MediatR 构建高可用与高性能微服务系统:从架构设计到落地实战