zoukankan      html  css  js  c++  java
  • leetcode 1309 Decrypt String from Alphabet to Integer Mapping

    地址  https://leetcode-cn.com/problems/decrypt-string-from-alphabet-to-integer-mapping/

    给你一个字符串 s,它由数字('0' - '9')和 '#' 组成。我们希望按下述规则将 s 映射为一些小写英文字符:

    字符('a' - 'i')分别用('1' - '9')表示。
    字符('j' - 'z')分别用('10#' - '26#')表示。 
    返回映射之后形成的新字符串。

    题目数据保证映射始终唯一。

    示例 1:
    
    输入:s = "10#11#12"
    输出:"jkab"
    解释:"j" -> "10#" , "k" -> "11#" , "a" -> "1" , "b" -> "2".
    示例 2:
    
    输入:s = "1326#"
    输出:"acz"
    示例 3:
    
    输入:s = "25#"
    输出:"y"
    示例 4:
    
    输入:s = "12345678910#11#12#13#14#15#16#17#18#19#20#21#22#23#24#25#26#"
    输出:"abcdefghijklmnopqrstuvwxyz"
     
    
    提示:
    
    1 <= s.length <= 1000
    s[i] 只包含数字('0'-'9')和 '#' 字符。
    s 是映射始终存在的有效字符串。

    解法

    逆向查看字符串 如果是‘#’ 那么就要在向前查看两个字符 一并进行转换处理

    如果不是'#' 那么就处理单个数字转换字母

    class Solution {
    public:
        string ret;
        void Check(const string& s, int idx,int special)
        {
            if(special==1){
                string tmp = s.substr(idx,2);
                int num = atoi(tmp.c_str());
                ret += ('j'+num-10);
            }else{
               ret += ('a'+ (s[idx]-'1') );
                
            }
            
        }
        string freqAlphabets(string s) {
            for(int i = s.size()-1;i>=0;){
                if(s[i] == '#'){
                    Check(s,i-2,1);
                    i-=3;
                }else {
                    Check(s,i,0);
                    i--;
                }
                
            } 
            reverse(ret.begin(),ret.end());
            return ret;
        }
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    一个简单的禁止鼠标滚轮事件处理
    模仿抽奖转盘,并且用cookie记录历史次数
    学习jquery
    使用var提升变量声明
    Django 自带密码加密,自定密码加密方式 及自定义验证方式
    kindEditor使用并防止xss攻击(day88)
    python二维码生成库(qrcode)简介和实例
    js原型的区别
    js中 this与that
    python单元测试之unittest框架使用总结
  • 原文地址:https://www.cnblogs.com/itdef/p/12154770.html
Copyright © 2011-2022 走看看