15天大厂真题带刷 - ZT11 压缩二维码 | Go

压缩二维码

https://www.nowcoder.com/practice/1150d36c2cd64df9bf373988486c6723

题意

给出一个矩阵,#表示1,.表示0,每4位看作二进制,求十进制

思路

直接模拟即可,这里是先把矩阵转化为只有0和1的数组,然后从头开始遍历,每次取4位按照1 2 4 8 的数位求出十进制数字的值

Go代码

package main

import (
	"fmt"
	"math"
)

func main() {
    var n int 
    fmt.Scan(&n)
    var s string 
    tmp := make([]int,0,n)
    for i := 0; i < int(math.Pow(2,float64(n))); i ++ {
        fmt.Scan(&s)
        for j := 0; j < len(s); j ++ {
            if s[j] == '#' {
                tmp = append(tmp,1)
            }else{
                tmp = append(tmp,0)
            }
        }
    }
    //fmt.Println(tmp)
    for i := 0; i < len(tmp); i += 4 {
        //1 2 4 8 
        fmt.Printf("%d ",tmp[i]*8+tmp[i+1]*4+tmp[i+2]*2+tmp[i+3])
    }
}

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

15天大厂真题带刷Golang题解

全部评论

相关推荐

本科生是不是只能去送外卖了
有气魄的海豚在喝茶:外卖这个版本被保安克制
点赞 评论 收藏
分享
逆流河上万仙退:我觉得佬没必要 学历在这里 去了也不会对履历有很大提升 只是有可能让自己更熟练 是我的话会更倾向于找暑期或者中大厂日常
查看13道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务