首页 > 其他分享 >HJ 坐标移动

HJ 坐标移动

时间:2024-04-24 15:13:21浏览次数:11  
标签:loc String int HJ length 坐标 str 移动 Scanner

正则式.matches应用

我的解题思路:判断不符合标准的输入,以及switch函数进行情况选择
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        String str1 = in.next();
        int[] loc = new int[2];
        String[] str = str1.split(";");
    
        for (int i = 0; i < str.length; i++) {
            loc = opr(str[i],loc);
        }
        System.out.println(loc[0]+","+loc[1]);
    }

    
    static int[] opr(String str,int[] loc) {
        if(str.length()<2){
            return loc;
        }
        char q = str.charAt(0);
        String strNew= str.substring(1);
        // regularization
        boolean flag = strNew.matches("[0-9]{1,2}");
        if(strNew.length()<=2&&flag){
            int add = Integer.parseInt(strNew);
            switch(q) {
            case 'A':
                loc[0] = loc[0] - add;
                break;
            case 'D':
                loc[0] = loc[0] + add;
                break;
            case 'S':
                loc[1] = loc[1] - add;
                break;
            case 'W':
                loc[1] = loc[1] + add;
                break;
            default:
                return loc;
            }
        }
        return loc;
    }

    
}
官方解题思路:!s.matches("[WASD][0-9]{1,2}")减少情况分类

标签:loc,String,int,HJ,length,坐标,str,移动,Scanner
From: https://www.cnblogs.com/xytang-mini-juan/p/18155503

相关文章

  • vis.js动画移动点3d图形
    代码案例<!DOCTYPEhtml><html><head><title>Graph3Ddemo</title><style>body{font:10ptarial;}</style><scripttype="text/javascript"src=......
  • The 2022 ICPC Asia Xian Regional Contest / ICPC 西安 2022 (ABDHJKL)
    本文搬运自本人的知乎文章。https://zhuanlan.zhihu.com/p/588162564好久没有在补题之后写题解的习惯了。但是最近感觉有些题目的思路即使在题目通过后仍然难以理清,因此觉得需要写些东西帮助自己整理思路,另外也方便以后翻看积累到的技巧。J.StrangeSum题目链接Problem-J......
  • Vue-cli 将px转化为rem适配移动端
    vue-cli2版本配置1.下载lib-flexible我使用的是vue-cli+webpack,所以是通过npm来安装的npmilib-flexible--save2.引入lib-flexible在main.js中引入lib-flexibleimport'lib-flexible/flexible'3.设置meta标签通过meta标签,设置设备宽度以及缩放比例<metaname="viewport......
  • 移动语义和引用折叠、完美转发
    移动构造、移动赋值C++11新增了移动语义新特性,移动语义允许在不复制数据的情况下转移资源的所有权。在这之前,对象通过拷贝构造函数或拷贝赋值运算符进行传递,发生大量的数据复制,导致性能下降。以常用的string对象为例,#include<cstring>#include<iostream>classstring{pub......
  • 姿态解算中的坐标变换
    ......
  • 在Linux中,如何创建、移动和删除文件和文件夹?
    在Linux中,创建、移动和删除文件和文件夹是基本的文件操作任务,通常使用命令行界面(CLI)来完成。以下是一些常用的命令来执行这些操作:1.创建文件和文件夹创建空文件:touchfilename.txt这将创建一个名为filename.txt的空文件。创建多个文件:touchfile1.txtfile2.txtfile3......
  • C++ 构造函数实战指南:默认构造、带参数构造、拷贝构造与移动构造
    C++构造函数构造函数是C++中一种特殊的成员函数,当创建类对象时自动调用。它用于初始化对象的状态,例如为属性分配初始值。构造函数与类同名,且没有返回值类型。构造函数类型C++支持多种类型的构造函数,用于满足不同的初始化需求:默认构造函数:不带参数的构造函数,通常用于初......
  • Python pytorch 坐标系变换与维度转换
    前言深度学习中经常要用到张量坐标系变换与维度转换,因此记录一下,避免混淆坐标系变换坐标系变换(矩阵转置),主要是调换tensor/array的维度pytorchimporttorchdefinfo(tensor):print(f"tensor:{tensor}")print(f"tensorsize:{tensor.size()}")print(f"tenso......
  • flutter 移动应用程序中打开URL
    url_launcher:^6.2.5 在Flutter中,url_launcher库是用于在移动应用程序中打开URL的常用工具。它允许你通过调用系统的浏览器或其他应用程序来打开指定的URL,比如网页链接、电子邮件链接、电话号码等。这个库提供了一种简单的方法来实现在应用中跳转到外部链接的功能,增强了应用的......
  • 如何将图片上的像素坐标(u, v)投影到世界坐标系中
    如何将图片上的像素坐标(u,v)投影到世界坐标系中,即得到\((x_w,y_w,z_w)\).数学表达如下\[\begin{align*}s\begin{bmatrix}u\\v\\1\end{bmatrix}&=\begin{bmatrix}f_x&0&c_x&0\\0&f_y&c_y&0\\0&0&1&0\end......