首页 > 其他分享 >#yyds干货盘点# 面试必刷TOP101:把数字翻译成字符串

#yyds干货盘点# 面试必刷TOP101:把数字翻译成字符串

时间:2022-09-30 14:32:24浏览次数:66  
标签:yyds return charAt nums int && 必刷 TOP101 dp

1.简述:

描述

有一种将字母编码成数字的方式:'a'->1, 'b->2', ... , 'z->26'。

现在给一串数字,返回有多少种可能的译码结果

数据范围:字符串长度满足 

进阶:空间复杂度 ,时间复杂度 

示例1

输入:

"12"

返回值:

2

说明:

2种可能的译码结果(”ab” 或”l”)
示例2

输入:

"31717126241541717"

返回值:

192

说明:

192种可能的译码结果

2.代码实现:

import java.util.*;
public class Solution {
public int solve (String nums) {
//排除0
if(nums.equals("0"))
return 0;
//排除只有一种可能的10 和 20
if(nums == "10" || nums == "20")
return 1;
//当0的前面不是1或2时,无法译码,0种
for(int i = 1; i < nums.length(); i++){
if(nums.charAt(i) == '0')
if(nums.charAt(i - 1) != '1' && nums.charAt(i - 1) != '2')
return 0;
}
int[] dp = new int[nums.length() + 1];
//辅助数组初始化为1
Arrays.fill(dp, 1);
for(int i = 2; i <= nums.length(); i++){
//在11-19,21-26之间的情况
if((nums.charAt(i - 2) == '1' && nums.charAt(i - 1) != '0') || (nums.charAt(i - 2) == '2' && nums.charAt(i - 1) > '0' && nums.charAt(i - 1) < '7'))
dp[i] = dp[i - 1] + dp[i - 2];
else
dp[i] = dp[i - 1];
}
return dp[nums.length()];
}
}

标签:yyds,return,charAt,nums,int,&&,必刷,TOP101,dp
From: https://blog.51cto.com/u_15488507/5726942

相关文章

  • #yyds干货盘点# LeetCode 热题 HOT 100:跳跃游戏
    题目:给定一个非负整数数组 nums,你最初位于数组的第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标。 示例 1:输入:nums......
  • #yyds干货盘点# 面试必刷TOP101:不同路径的数目(一)
    1.简述:描述一个机器人在m×n大小的地图的左上角(起点)。机器人每次可以向下或向右移动。机器人要到达地图的右下角(终点)。可以有多少种不同的路径从起点走到终点?备注:m和n小于等......
  • #yyds干货盘点# 面试必刷TOP101:矩阵的最小路径和
    1.简述:描述给定一个 n*m 的矩阵 a,从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的数字累加起来就是路径和,输出所有的路径中最小的路径和。数据范......
  • #yyds干货盘点# 前端歌谣的刷题之路-第九十七题-symbol
    前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从......
  • yydsqwqw
    向量的旋转一共有三种表示方法:旋转矩阵、欧拉角和四元数,接下来我们介绍一下每种旋转方法的原理以及相互转换方式。旋转矩阵坐标变换的作用在一个机器人系统中,每个测量元......
  • yyds
    向量的旋转一共有三种表示方法:旋转矩阵、欧拉角和四元数,接下来我们介绍一下每种旋转方法的原理以及相互转换方式。旋转矩阵坐标变换的作用在一个机器人系统中,每个测量元......
  • 盘点 10个 C# 开源项目 yyds!
    盘点10个C#开源项目yyds!搜罗Github挖掘优质开源项目,分享高效率工具!​关注 6人赞同了该文章只推荐干货!当然这些开源项目都是个人或组织......