首页 > 其他分享 >1138.字母板上的路径

1138.字母板上的路径

时间:2023-06-13 15:46:51浏览次数:52  
标签:loc 1138 end target res 字母 move 板上 row

问题描述

1138.字母板上的路径

解题思路

考虑到'z'单独在一个地方,因此移动顺序中,左下、右上不能反过来,即不能先往下再往左或者先往右再往上。

代码

class Solution {
public:
    string alphabetBoardPath(string target) {
        string res;
        vector<int> cur_loc{0, 0};
        vector<int> target_loc{0, 0};
        // 要注意边缘的存在
        for (auto &c : target) {
            target_loc[0] = (c - 'a') / 5;
            target_loc[1] = (c - 'a') % 5;
            int move_row = target_loc[0] - cur_loc[0];
            int move_col = target_loc[1] - cur_loc[1];
            cur_loc[0] = target_loc[0];
            cur_loc[1] = target_loc[1];
            if (move_col < 0) {
                res.insert(res.end(), -move_col, 'L');
                if (move_row >= 0)
                    res.insert(res.end(), move_row, 'D');
                else
                    res.insert(res.end(), -move_row, 'U');
            } else {
                if (move_row >= 0)
                    res.insert(res.end(), move_row, 'D');
                else
                    res.insert(res.end(), -move_row, 'U');
                res.insert(res.end(), move_col, 'R');
            }
            res.push_back('!');
        }
        return res;
    }
};

标签:loc,1138,end,target,res,字母,move,板上,row
From: https://www.cnblogs.com/zwyyy456/p/17477716.html

相关文章

  • 代码随想录算法训练营第25天 | ● 216.组合总和III ● 17.电话号码的字母组合 - 第7章
     第七章 回溯算法part02 今日内容:  ●  216.组合总和III●  17.电话号码的字母组合  详细布置   216.组合总和III  如果把 组合问题理解了,本题就容易一些了。  题目链接/文章讲解:https://programmercarl.com/0216.%E7%BB%84%E5%90%88%E6%80%B......
  • 代码随想录算法训练营第五天| 242.有效的字母异位词 , 349. 两个数组的交集 , 202. 快
    242.有效的字母异位词 繁冗版:1,思路:先建立两个map,对应两个字符串对应的字符,同时对他们进行计数,如果这两个数字相等,那么就是相等2,代码1boolisAnagram_complicate(strings,stringt)2{3unordered_map<char,int>existedCharBys;45for(autoch......
  • 常见希腊字母读音
    \(\alpha\)阿尔法\(\beta\)贝塔\(\lambda\)兰布达\(\gamma\)伽马\(\delta\)德尔塔\(\epsilon\)伊普西龙\(\zeta\)泽塔\(\eta\)艾塔\(\theta\)西塔\(\xi\)西,可西\(\pi\)pi\(\rho\)rho\(\sigma\)西格玛\(\tau\)tau\(\phi\)phi......
  • 飘 查询字母频率并计算 频数
    package文本字母使用频率;importjava.io.*;publicclassLetter1{publicstaticvoidmain(Stringargs[]){try{charshu[]=newchar[1000000];charzimu[]=newchar[52];intj=0;int......
  • 力扣---1170. 比较字符串最小字母出现频次
    定义一个函数 f(s),统计 s 中(按字典序比较)最小字母的出现频次,其中s 是一个非空字符串。例如,若 s="dcce",那么 f(s)=2,因为字典序最小字母是 "c",它出现了 2次。现在,给你两个字符串数组待查表 queries 和词汇表 words。对于每次查询 queries[i],需统计words中......
  • 2023.6.10 比较字符串最小字母出现频次
    首先按照题意把f(str)这个函数实现出来。可以考虑用哈希表+sort来实现。然后根据题目的数据范围,一个字符串最长为2000,可以知道,\(f(str)\in[1,2000]\)。所以可以考虑用前缀和来处理,定义一个长度为2001的数组s,用来作为前缀和数组,\(s[i]\)表示f值小于等于i的字符串个数。每一......
  • 一个根据字母,数字和符号组合生成指定长度密码的简单方法
    前言:网上没有太好的直接可用的方法,于是自己写了一个,下面的方法可以根据字母,数字和符号组合生成指定长度密码,策略和长度可控,详细代码如下: ///<summary>///生成密码///</summary>///<paramname="zmLength">小写字母长度</param>///<paramname="upzmLength">大写......
  • vue3+ TS pinyin uniapp 索引列表-(A-Z)按首字母排序 ,锚点定位
    获取一维数组地址列表<scriptlang="ts"setup>import{getLocationList}from"@/apis/activity";import{onLoad}from"@dcloudio/uni-app";import{pinyin}from"pinyin-pro"import{ref}from"vue";const......
  • 75 验证码 大小写字母a_Z(随机区间需要去掉6个非法的值,不合法+6)和数字拼接
    packagecom.fqs.test;importjava.util.Random;publicclasshello{publicstaticvoidmain(String[]args){//定义方法实现随机产生一个5位的验证码//验证码格式长度5//前四位是大写的字母或者小写的字母abcD5//最后一位......
  • Python实际应用,处理字幕文件实现句首字母大写
    #Python实际应用,处理字幕文件实现句首字母大写。读取文件lower.txt,实现句首字母大写,将处理结果输出到Upper.txt文件infile=open("lower.txt","r")#打开输入文件outfile=open("Upper.txt","w")#打开输出文件flag=True#需要处理首字母大写的行标志,默认首行......