3.13号百度回文串 前端算法第三题

结合做题时候的思路以及在牛客看到的其它大佬的帖子完整的code如下

总体思路就是填充,不过生成的结果应该会比看到的帖子略短一些,尤其是在x=n*(n+1)/2+n 的时候

package main

import (
	"fmt"
	"math"
	"strings"
)

func getX(n int) int {
	return (1 + n) * n / 2
}
func getN(x int) int {
	return int((math.Sqrt(float64(x*8+1)) - 1) / 2)
}

func Palindromic(x int) string {
	row := strings.Builder{}
	repeat := func(c byte, n int) {
		for n > 0 {
			row.WriteByte(c)
			n--
		}
	}
	cs := "red"
	p := 0
	for x >0{
		n := getN(x)
		nx := getX(n)
		repeat(cs[p%3], n)
		x -= nx
		p++
	}
	return row.String()
}
func main() {
	r := getX(65)
	d := 55
	e := 6
	fmt.Println(Palindromic(r + d + e))
	fmt.Println(Palindromic(r + d + e + 1))
	fmt.Println(Palindromic(r + d + e + 2))
	fmt.Println(Palindromic(r + d + e + 3))
	fmt.Println(Palindromic(r + d + e + 4))
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeeddd
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeedddr
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeedddre
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeedddrr
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreeeeeeeeeedddd
	d = 0
	e = 0
	fmt.Println(Palindromic(r + d + e))
	fmt.Println(Palindromic(r + d + e + 1))
	fmt.Println(Palindromic(r + d + e + 2))
	fmt.Println(Palindromic(r + d + e + 3))
	fmt.Println(Palindromic(r + d + e + 4))
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrre
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrred
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrree
    // rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrreed
	r = 0
	fmt.Println(Palindromic(r + d + e))
	fmt.Println(Palindromic(r + d + e + 1))
	fmt.Println(Palindromic(r + d + e + 2))
	fmt.Println(Palindromic(r + d + e + 3))
	fmt.Println(Palindromic(r + d + e + 4))
	// r
	// re
	// rr
	// rre
}

#百度笔试##前端##互联网##24届#
全部评论

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务