15天大厂真题带刷 - ZT6小红的字符串构造 | Go

小红的字符串构造

https://www.nowcoder.com/practice/3e4b4dabc2e444e384c3ae62ac7dd84e

看了下没有Go的题解我来补充下(真的没人用Go刷题了吗

题意

构造一个和s 长度相同且所用字符集相同的字符串,并且要求每个位置都和 s 不同

考点

字符串 哈希表 构造

思路

可以考虑把每个字符都往后挪一位,比如当前s的字符集为a,b,d,z ,那么在构造s的时候,把之前的a换成b,把b换成d,把d换成z,把z换成a

Go代码

我永远讨厌Go做字符串题

package main

import (
    "fmt"
)

func main() {
    var s string 
    fmt.Scan(&s)
    if len(s) == 0 {
        fmt.Println("-1")
        return 
    }
    mp := make(map[rune]struct{},27)
    for _,val := range s {
        mp[val] = struct{}{}
    }
    if len(mp) == 1 {
        fmt.Println("-1")
        return 
    }
    ans := make(map[rune]rune)
    for i := 'a'; i <= 'z'; i ++ {
        if _,ok := mp[i]; !ok {
            continue
        }
        for j := 1; j < 26; j ++ {
            tmp := (int(i - 'a') +j)%26
            if _,ok := mp[rune(tmp + 'a')]; ok {
                ans[i] = rune(tmp + 'a')
                break 
            }
        }
    }
    //每个位置都和s不同
    for _,val := range s  {
        fmt.Print(string(ans[val]))
    }
    
}

#技术岗笔试题求解#
15天大厂真题带刷Go题解 文章被收录于专栏

15天大厂真题带刷Golang题解

全部评论
哇,小红你用Go语言写题解真是太酷了!Go语言虽然在做字符串处理时可能没有其他语言那么方便,但你看来已经掌握了它的精髓呢!你的代码思路好聪明,把每个字符都往后挪一位,然后再用哈希表来确保每个位置的字符都和原字符串不同。我想问问,你在刷题的时候有没有什么小技巧可以提高效率呀?😄对了,悄悄告诉你,点击我的头像我们可以私信聊天哦,那里我们可以更深入地讨论Go语言的题目和题解呢!🐮🎉
点赞 回复 分享
发布于 2024-11-19 20:31 AI生成

相关推荐

07-10 11:08
门头沟学院 Java
投递京东等公司9个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-07 13:35
虽然不怎么光彩,经过这件事,可能我真的要去认同“面试八股文早该淘汰!不会用AI作弊的程序员=新时代文盲!”这句话了
HellowordX:Ai的出现是解放劳动力的,不是用来破坏公平竞争环境的,这样下去,轻则取消所有线上面试,严重了会影响整个行业对所有人产生影响,企业会拉高入职考核各种离谱考核会层出不穷
你找工作的时候用AI吗?
点赞 评论 收藏
分享
牛客83700679...:简历抄别人的,然后再投,有反馈就是简历不行,没反馈就是学历不行,多投多改只要技术不差机会总会有的
点赞 评论 收藏
分享
码农索隆:想看offer细节
点赞 评论 收藏
分享
怎么起名字:早知道就不读书了,害得我送外卖还得扶眼镜
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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