15天大厂真题带刷 - ZT8 小红的字符生成 | Go

小红的字符生成

https://www.nowcoder.com/practice/f8659377ca104b1aad45dd2fb564c940

题意

每次可以把一个字符变成两个字母表中比它小一位的字符希望最终可以生成 xx 个'a',求长度最短的初始字符串

思路

1个b可以变为2个a,1个c可以变为2个b也就是4个a,1个d可以变成2个c=4个b=8个a

可以观察出,数量的规律是2的次方

题目要求长度最短,所以从z开始倒序遍历,看能否使用当前的字符来构造字符串

Go代码

package main

import (
	"fmt"
)

func main() {
	var x int
	fmt.Scan(&x)
	//最后生成x个a
	//b => 2a
	//c => 2b => 4a
	//d => 2c => 4b => 8a
    //实际上是2的次方 
    pow2 := make([]int,30)
    pow2[1] = 1 
    for i := 2; i <= 26; i ++ {
        pow2[i] = pow2[i-1] * 2
    }
	for i := 26; i >= 1; i-- {
		now := pow2[i]
		if x/now > 0 {
			for j := 1; j <= x/now; j++ {
				fmt.Print(string(rune(i - 1 + 'a')))
			}
			x = x % now
		}
        if x == 0 {
            break 
        }
	}
}

#牛客创作赏金赛#
15天大厂真题带刷Go题解 文章被收录于专栏

15天大厂真题带刷Golang题解

全部评论

相关推荐

不愿透露姓名的神秘牛友
昨天 12:10
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
能干的三文鱼刷了10...:公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞 评论 收藏
分享
MinJerous:虽然我一直说 计算机不怎么卡学历 但是至少得一本
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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