首页 > 其他分享 >字符串解码(递归)

字符串解码(递归)

时间:2025-01-11 15:22:04浏览次数:1  
标签:string 递归 int 解码 字符串 题意

题目链接:https://leetcode.cn/problems/decode-string/

题意:

嵌套递归

class Solution {
  
public:
    int where;
    string repeat(string path,int cnt)
    {
        string ans="";
        for(int i=1;i<=cnt;i++)
        {
            ans+=path;
        }
        return ans;
    }
    string decodeString(string s) {
        where=0;
        return f(s,0);
    }
    string f(string s,int i)
    {
        string path="";
        int cnt=0;
        while(i<s.size()&&s[i]!=']')
        {
            if(isalpha(s[i]))path+=s[i++];
            else if(isdigit(s[i]))cnt=cnt*10+(s[i++]-'0');
            else 
            {
                path+=repeat(f(s,i+1),cnt);
                i=where+1;
                cnt=0;
            }
        }
        where=i;
        return path;
    }
};

标签:string,递归,int,解码,字符串,题意
From: https://www.cnblogs.com/benscode/p/18665741

相关文章

  • 递归的几个例子
    递归1数字划分:求将数字分解为不同数字相加的种类例如2=2、2=1+1两种3=3,3=2+1,3=1+1+1三种intsplit(intn,intmax){if(n==0||max==1)return1;if(max>n)returnsplit(n,n);returnsplit(n-max,max)+split(n,max-......
  • 请说说你对JavaScript中的递归、PTC、TCO和STC的了解
    在JavaScript中,递归、PTC(ProperTailCall,适当的尾调用)、TCO(TailCallOptimization,尾调用优化)和STC(SyntacticTailCall,语法级尾调用)是关键概念,尤其在处理复杂问题和优化代码性能时显得尤为重要。以下是对这些概念的详细解释:1.递归(Recursion)递归是一种函数自我调用的技术,常用......
  • 文件筛选与提取、递归解压工具RecursiveDecompression
    RecursiveDecompression是我用C#开发的一款实用工具,主要包括文件提取、递归解压缩两个功能。假设我要把 D:\Temp\CalcNotepad这个路径里面所有扩展名为vb的文件复制到另一个地方,一个一个复制很麻烦。 打开RD工具,选择源文件夹,然后选择目标路径D:\Test1(提前创建一个空白文件......
  • C语言实现字符串替换函数
    #include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<string.h>//字符串替换函数/*********************************************************************Function:my_strstr()*Description:在一个字符串中查找一个子串;*Input:p......
  • 124.【C语言】数据结构之快速排序的小区间优化和非递归的解决方法
    目录1.小区间优化测试代码运行结果2.非递归的解决方法(重要!)递归产生的问题一般来说,递归改非递归有两种方法算法分析递归产生的二叉树栈的示意图先写代码框架再填写细节部分1.小区间优化回顾121.【C语言】数据结构之快速排序(未优化的Hoare排序存在的问题)以及......
  • 递归+pair
    https://codeforces.com/contest/2053/problem/C#include<bits/stdc++.h>#definelcp<<1#definercp<<1|1#defineINF2e9usingnamespacestd;#defineendl'\n'usingll=longlong;usingpii=pair<ll,int>;constdoubl......
  • 总结并拆解所有新手常用的——String API(二)(字符串)
    前言:String类包括的方法可用于检查序列的单个字符、比较字符串、搜索字符串、提取子字符串、创建字符串副本并将所有字符全部转换为大写或小写.......小编这次就比较全面系统的带大家总结清楚几乎所有string常用的API,并且带大家拆解清楚,能够灵活使用!!!小编最近熬夜牙疼的......
  • JavaScript字符串拓展:实用方法与示例全解析
    一、引言:为什么要学习JS字符串拓展在前端开发的世界里,JavaScript如同基石般支撑着网页的交互与动态呈现。而字符串作为我们日常操作中最频繁接触的数据类型之一,其原生方法在面对复杂多变的业务需求时,有时难免显得捉襟见肘。此时,JS字符串拓展方法就如同一个个得力助手,闪亮......
  • JS-27 字符串方法_split()
    split方法按照给定规则分割字符串,返回一个由分割出来的子字符串组成的数组'it|sxt|zifuchuan'.split('|')//["it","sxt","zifuchuan"]如果分割规则为空字符串,则返回数组的成员是原字符串的每一个字符。'a|b|c'.split('')//["a","|","b&q......
  • 用python调用AlistClient 批量递归下载百度网盘指定目录文件,基于Alist
    importosimportrequestsfromalistimportAlistClientfromurllib.parseimportunquote,urlparsedefdownload_file(url,local_path):response=requests.get(url,stream=True)total_size=int(response.headers.get('content-length',0))......