前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >14 Decrypt String from Alphabet to Integer Mapping

14 Decrypt String from Alphabet to Integer Mapping

作者头像
devi
发布2021-08-18 15:53:11
2740
发布2021-08-18 15:53:11
举报
文章被收录于专栏:搬砖记录搬砖记录

题目

Given a string s formed by digits (‘0’ - ‘9’) and ‘#’ . We want to map s to English lowercase characters as follows:

代码语言:javascript
复制
Characters ('a' to 'i') are represented by ('1' to '9') respectively.
Characters ('j' to 'z') are represented by ('10#' to '26#') respectively. 

Return the string formed after mapping.

It’s guaranteed that a unique mapping will always exist.

Example 1:

Input: s = “10#11#12” Output: “jkab” Explanation: “j” -> “10#” , “k” -> “11#” , “a” -> “1” , “b” -> “2”.

Example 2:

Input: s = “1326#” Output: “acz”

Example 3:

Input: s = “25#” Output: “y”

Example 4:

Input: s = “12345678910#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#” Output: “abcdefghijklmnopqrstuvwxyz”

Constraints:

代码语言:javascript
复制
1 <= s.length <= 1000
s[i] only contains digits letters ('0'-'9') and '#' letter.
s will be valid string such that mapping is always possible.

分析

题意:a~i用0~9表示,j~z用10#~26#表示 给一个数字和#组成字符串,将其解密为字母 可以转化为ASCII码,0与a相差96,因此数字与对应字母都相差96

难点: 0~9和10#~26#编码不统一,没有整体都用#分割

思路:从前向后匹配,如果第三个字符为’#’,则往后跳3个字符,

解答

代码语言:javascript
复制
class Solution {
    public String freqAlphabets(String s) {
        int n = s.length();
        String ans = "";
        for(int i = 0; i < n; ) {
        	//由于i=i+3,因此最后两个需要略过,不然越界,因此i<n-2
            if(i < n - 2 && s.charAt(i + 2) == '#') {
            	//拿到当前数字,substring取头不取尾
                int num = Integer.parseInt(s.substring(i, i + 2));
                ans += (char)(num + 96);
                //往后跳跃3个字符
                i = i + 3;
                continue;
            }
            //如果不是#,则直接加上
            ans += (char)(97 + s.charAt(i) - '1');
            i++;
        }
        return ans;
    }
}
本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-02-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目
  • 分析
  • 解答
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com