【华为机试】HJ17 坐标移动详解+完整源代码示例

news2024/11/15 19:59:34

忙碌了一周,一直没时间更新,趁着周末来更新第二个题目。

题目

图片1
图片2

题目解析

这个题目相比于上一个题目来说,会简单一些,不涉及到那些复杂的算法,就是对于字符串的处理。

算法步骤

  • 输入一个字符串
  • 根据分号,将字符串拆成子字符串,利用数组进行保存。
  • 分情况讨论:字母后面的数字是两位数和字母后面的数字是一位数两种情况
  • 再根据每个子字符串首位的字符,决定x和y坐标的移动。

源代码

#include <iostream>
#include <string>
#include <vector>
using namespace std;

int main() {
    string s;
    cin >> s;
    int len = s.size();  // 输入字符串
    vector<string> strs;
    int x = 0, y = 0; // 设置初始坐标
    int sublen = 0;
    for (int i = 0; i < len; i++) {
        if (s[i] != ';') {
            sublen++;
            continue;
        } else {
            string substrs = s.substr(i - sublen, sublen); // 截取子字符串
            strs.push_back(substrs); // 将子字符串存入数组
            sublen = 0;
        } 
    }
    for (int i = 0; i < strs.size(); i++) { // 对于每个子字符串分情况讨论
        int num = 0;
        if ((strs[i].size() == 3) && (strs[i][1] >= '0') && (strs[i][1] <='9') && (strs[i][2] >= '0') && (strs[i][2] <='9')) {
            num = (strs[i][1] - '0') * 10 + (strs[i][2] - '0');
        }
        if ((strs[i].size() == 2) && (strs[i][1] >= '0') && (strs[i][1] <= '9')) {
            num = strs[i][1] - '0';
        } 
        switch (strs[i][0]) { // 对坐标x,y进行计算
            case 'A': x -= num;
                break;
            case 'D': x += num;
                break;
            case 'S': y -= num;
                break;
            case 'W': y += num;
                break;
            default:
                break;
        }
    }
    cout << x << ',' << y << endl; // 输出结果
}

参考代码

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

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

相关文章

uniapp 集成七牛云,上传图片

1 创建项目 我是可视化创建项目的 &#xff0c;cli创建的项目可以直接使用npm安装七牛云。 2 拷贝qiniuUploader.js到项目&#xff0c;下面的回复 放了qiniuUploader.js百度云链接。 3 在需要使用qiniuUploader的vue文件 引入。 4 相册选择照片&#xff0c;或者拍照后&#xff…

Redis-持久化、主从集群、哨兵模式、分片集群、分布式缓存

文章目录 高级篇 - 分布式缓存 Redis集群0、单节点Redis的问题一、Redis持久化1.1 RDB 持久化1.1.1 基本介绍1.1.2 RDB的fork原理1.2.3 总结 1.2 AOF持久化1.3 RDB与AOF对比 二、Redis主从集群2.1 介绍2.2 搭建主从集群2.2.1 准备实例、配置2.2.2 启动2.2.3 开启主从关系2.2.4 …

快速而简单的视频格式转换方法

在数字时代&#xff0c;我们经常需要将视频文件从一种格式转换为另一种格式。无论是因为兼容性问题&#xff0c;还是为了在特定设备上播放视频&#xff0c;视频格式转换是一项非常常见的任务。本文将介绍视频格式转换的基本知识和步骤。 首先&#xff0c;了解不同的视频格式非常…

8.3 非正弦波发生电路

在实用电路中除了常见的正弦波外&#xff0c;还有矩形波、三角波、锯齿波、尖顶波和阶梯波&#xff0c;如图8.3.1所示。 一、矩形波发生电路 矩形波发生电路是其它非正弦波发生电路的基础&#xff0c;例如&#xff0c;若方波电压加在积分运算电路的输入端&#xff0c;则输出就…

数学建模-相关系数

excel基本操作&#xff1a;ctrl右&#xff0c;ctrl左&#xff0c;ctrlshift下/右&#xff0c;ctrlshift空格 题目里有数据&#xff0c;给出描述性统计是比较好的习惯 excel描述性统计&#xff1a;数据-数据分析-描述统计 MATLAB要做散点图C62个 SPSS可以直接画出两两之间的散…

华为OD机试真题 Java 实现【最小循环子数组】【2023 B卷 100分】,附详细解题思路

目录 专栏导读一、题目描述二、输入描述三、输出描述四、备注五、Java算法源码六、效果展示1、输入2、输出 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有…

koa初体验———swagger使用

学习完koa框架和mysql&#xff0c;写了一个小demo&#xff0c;选课管理系统&#xff0c;其中包含权限验证&#xff0c;登录注册&#xff0c;用户管理和选课管理。写这个项目目的一方面是为了自己练手&#xff0c;另一方面是为了我们在学习新技术的时候能够有接口供我们使用去测…

Cilium基础架构

Cilium作为一款Kubernetes CNI插件&#xff0c;从一开始就是为大规模和高度动态的容器环境而设计&#xff0c;并且带来了API级别感知的网络安全管理功能&#xff0c;通过使用基于Linux内核特性的新技术——BPF&#xff0c;提供了基于service/pod/container作为标识&#xff0c;…

树莓派-家庭健康监测-空气篇

树莓派-家庭健康监测-空气篇 最后编辑日期: 2023.7.16 1、背景和目标 室内空气中高浓度的二氧化碳会损害人类的认知能力和健康&#xff0c;良好室内空气质量的重要性和价值不言而喻。家庭健康监测-空气篇应运而生。 最后效果总览: 细节: 手机预览: 实现功能: 二氧化碳…

Redis数据类型的常用命令和应用场景

1. Redis数据类型概述 Redis 常见的数据类型有10 种&#xff0c;其中包括 5 种基本数据类型&#xff1a;Strings(字符串)、Lists(列表)、Sets(集合)、Hashes(散列)、Sorted sets(Zset有序集合)。除了基本数据类型外&#xff0c;还有 5 种常用数据类型&#xff1a;Bitmaps 、Hy…

《二叉搜索树OJ》

文章目录 1、 [根据二叉树创建字符串](https://leetcode.cn/problems/construct-string-from-binary-tree/)2、 [二叉树的层序遍历](https://leetcode.cn/problems/binary-tree-level-order-traversal/)3、 [二叉树的层序遍历 II](https://leetcode.cn/problems/binary-tree-le…

5.3 Python高级特性之-列表生成式、生成器、迭代器

一、 列表生成式 是Python内置的非常简单却强大的可以用来创建list的生成式 具体可根据如下案例理解&#xff0c;且代码也是可用的""" 1、 生成[0,1,2,3,4,5,6]这样列表 """ print(list(range(0, 7))) """ 2、 生成[0&#xff0…

MyBatis入门案列

MyBatis入门案列 开发Mybatis程序的步骤&#xff1a; 1、配置mybatis conf.xml: 配置数据库信息 和 需要加载的映射文件 &#xff12;、表 - 类 映射文件xxMapper.xml: 增删改查标签<select> &#xff13;、测试类: session.selectOne(“需要查询的SQL的namespace.id”…

jenkins 采用ssh方式连接gitlab连接不上

一、gitlab 添加jenkins服务器的公钥 jenkins 生成秘钥命令 ssh-keygen -t rsa2.jenkins 秘钥地址&#xff1a; cd /root/.ssh3.复制公钥 到gitlab 添加 cat id_rsa_pub4.添加私钥到jenkins cat id_rsa5.绑定&#xff08;顺利的话到这里就结束了&#xff09; &#xff0…

oc基本控件2

// // ViewController.m // OcDemoTest // // Created by Mac on 2023/7/14. //#import "ViewController.h"interface ViewController () // label property (weak, nonatomic) IBOutlet UIImageView *imageView; // Use of undeclared identifier // 全局propert…

基于Open3D的点云处理11-三维点云表面重建

点云表面重建 &#xff08;1&#xff09;显式建模方法&#xff1a; Explicit reconstruction 例如&#xff1a;Delaunay 三角网、Alpha shapes &#xff08;2&#xff09;隐式建模方法&#xff1a; Implicit reconstruction 例如&#xff1a;径向基函数法、移动最小二乘法、泊…

【QT】——Base64加解密

介绍 用 记事本 打开 exe、jpg、pdf 这些文件时&#xff0c;我们都会看到一大堆乱码&#xff0c;因为二进制文件包含很多无法显示和打印的字符。如果要让记事本这样的文本处理软件 能 处理二进制数据&#xff0c;如使用 json 保存二进制信息&#xff0c;需要先把数据先做一个 …

微服务 云原生:搭建 K8S 集群

为节约时间和成本&#xff0c;仅供学习使用&#xff0c;直接在两台虚拟机上模拟 K8S 集群搭建 踩坑之旅 系统环境&#xff1a;CentOS-7-x86_64-Minimal-2009 镜像&#xff0c;为方便起见&#xff0c;直接在 root 账户下操作&#xff0c;现实情况最好不要这样做。 基础准备 关…

数据在内存中的存储1(C语言进阶)

数据在内存中的存储 1.数据类型介绍1.1类型的基本归类&#xff1a;整形家族浮点数家族构造类型指针类型空类型 2.整形在内存中的存储2.1 原码、反码、补码2.2 大小端介绍为什么有大端和小端&#xff1a; 我们今天来学习数据在内存中的存储 1.数据类型介绍 前面我们已经学习了基…

TCP三次握手四次挥手

文章目录 TCP 三次握手和四次挥手1、三次握手过程image-202307100943094972、为什么要三次握手3、第 2 次握手传回了 ACK&#xff0c;为什么还要传回 SYN&#xff1f;4、断开连接-TCP 四次挥手5、为什么要四次挥手6、丢包问题7、为什么不能把服务器发送的 ACK 和 FIN 合并起来&…