题解 | #字符串解码#正则表达式与递归求解

字符串解码

https://www.nowcoder.com/practice/4e008fd863bb4681b54fb438bb859b92

package main

import (
	"fmt"
	"regexp"
	"strconv"
	"strings"
)

/**
 * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
 *
 *
 * @param s string字符串
 * @return string字符串
 */
func decodeString(s string) string {
	// write code here
	var patRegexp = `[0-9]\[[a-z]*]`
	re, err := regexp.Compile(patRegexp)
	if err != nil {
		return ""
	}
	if re.MatchString(s) {
		UnicodeString(&s, re)
	}
	return s
}
func UnicodeString(s *string, re *regexp.Regexp) {

	newSlice := re.FindAllString(*s, -1)
	fmt.Println(newSlice)
	for i := 0; i < len(newSlice); i++ {
		var times = newSlice[i][0]
		var repeatString = newSlice[i][1:]
		repeatString = strings.TrimLeft(repeatString, "[")
		repeatString = strings.TrimRight(repeatString, "]")
		n, err := strconv.Atoi(string(times))
		if err != nil {
			return
		}
		repeatString = strings.Repeat(repeatString, n)
		*s = strings.Replace(*s, newSlice[i], repeatString, -1)
	}
	if re.MatchString(*s) {
		UnicodeString(s, re)
	}
}

#正则表达式##递归##go#
全部评论

相关推荐

DKS233:项目写太简单了,你用什么技术实现了什么功能,优化了多少,分了哪些模块,解决了哪些难点,最好分模块写,你写的太模糊了。精通还是少用吧,你确定问你底层你扛的住吗,最好用熟悉。具备良好**意识,这种空话不要写,技能层面,要写就写实在的,比如“熟悉常用数据结构,如,堆,栈,链表,哈希表,平衡树”这种
你的简历改到第几版了
点赞 评论 收藏
分享
09-01 17:26
已编辑
门头沟学院
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务