首页 > 好未来笔试
头像
朕蹲厕唱忐忑
编辑于 2021-08-09 10:50
+ 关注

好未来笔试

好未来这个笔试题难度还可以,比较常规,对我这种菜鸡很友好,基础平台开发&3D图形算法-第一套 14:00-15:30那一场,三道算法a了2.6

  • 版本号大小判断,过了60%,有没有好giegie帮看一下哪里出了问题
  • 三数之和,升序排列一下,转换成两数之和的问题就可以
  • 链表整体后移k个单位,其实就是找到倒数第k个节点,断开,把前面的元素接在尾节点后面就可以
package main

import (
    "fmt"
    "strings"
)

func main() {
    var first, second string
    // fmt.Print("请输入")
    fmt.Scan(&first)
    fmt.Scan(&second)

    fmt.Println(first, second)
    fmt.Println(compare(first, second))
}

func compare(first, second string) int {
    // 以. 进行分割
    firs, secs := strings.Split(first, "."), strings.Split(second, ".")
    //if len(firs) != len(secs) {
    //    return 0
    //}

    for ii := 0; ii < len(firs); ii++ {
                if ii>=len(secs){
                    return 1
                }
        fir := firs[ii]
        sec := secs[ii]

        // 找到初始的有效位 忽略前置的0
        var firstValid, secondValid int
        //first=strings.ReplaceAll(first,".","")
        //second=strings.ReplaceAll(second,".","")
        firBs, secBs := []byte(fir), []byte(sec)
        for i, b := range firBs {
            if b == '0' {
                continue
            }
            firstValid = i
            break
        }
        for i, b := range secBs {
            if b == '0' {
                continue
            }
            secondValid = i
            break
        }

        //if firstValid != secondValid {
        //    return 0
        //}

        for l, r := firstValid, secondValid; ; l, r = l+1, r+1 {
            if l >= len(firBs) || r >= len(secBs) {
                break
            }
            if firBs[l] < secBs[r] {
                return -1
            } else if firBs[l] > secBs[r] {
                return 1
            }
        }
    }

    return 0
}

全部评论

(4) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐