携程03.07笔试前两题 Go语言

很少有go语言的代码,哭

(好像是春招笔试,不知道和暑期是否一样

题目链接:https://mp.weixin.qq.com/s/5dOkeepCP-PXt1QXRYGX5Q

第一题:稳定数组

dp

package main

import "fmt"

func do(nums []int) int {
	dp := make([]int, len(nums))
	for i := range dp {
		dp[i] = 1
	}
	res := 1

	for i := 1; i < len(nums); i++ {
		if abs(nums[i]-nums[i-1]) <= 1 {
			dp[i] = max(dp[i-1]+1, dp[i])
		}
		res = max(res, dp[i])
	}
	return res
}

func abs(a int) int {
	if a < 0 {
		return -a
	}
	return a
}

func max(a, b int) int {
	if a > b {
		return a
	}
	return b
}

func main() {
	// var n int
	// fmt.Scan(&n)
	// a := make([]int, n)

	// for i := 0; i < n; i++ {
	// 	fmt.Scan(&a[i])
	// }
	a := []int{2, 4, 2, 3, 2}

	fmt.Println(do(a))

}

第二题:字符串处理

package main

import "fmt"

func do(s string, left, right int) string {
	tmp := []byte{}
	for i := 0; i < len(s); i++ {
		tmp = append(tmp, s[i])
		if i >= left-1 && i <= right-1 {
			tmp = append(tmp, s[i])
		}
	}
	return string(tmp)
}

func main() {
	// var n int
	// fmt.Scan(&n)
	// a := make([]int, n)

	// for i := 0; i < n; i++ {
	// 	fmt.Scan(&a[i])
	// }

	s := "abcdef"
	cnt := 2
	var left, right int
	for i := 0; i < cnt; i++ {
		fmt.Scan(&left, &right)
		s = do(s, left, right)
		fmt.Println(s)
	}

}

#暑期实习笔试#
全部评论
收到面试通知了吗?
点赞 回复 分享
发布于 2023-04-16 00:00 广东
笔试时间多久
点赞 回复 分享
发布于 2023-04-14 16:48 湖南

相关推荐

09-16 18:33
已编辑
西北工业大学 golang
“你也用17啊”?“对啊对啊”“我用的苹果17,你呢”“我用的小米17”
绿眼睛蓝蛙蛙:朋友们,为了「17」这个名字,我们内部其实争论了很久,很久。我自己也想了整整一年。我们一直在想:我们,到底该不该跳过「16」,直接升级到「17」? 那是一段非常煎熬的日子,有整整180个夜晚,我几乎都没怎么合眼。我和团队反复推演,一遍遍说服我们的高管团队。最终,我们决定:不妥协,不将就!顶住所有的压力,直接发布——17!
投递小米集团等公司10个岗位
点赞 评论 收藏
分享
09-16 14:33
已编辑
南京大学 Java
最近福耀科技大学好火啊,号称保底25w年薪就业,有不少高分学生都报了,兄弟们你有这个分,报传统92还是它?
ITTM:如果真的像宣传所说的能给到25w保底薪资,985也没啥吸引力了,这年头,读书不就是为了能多赚点钱嘛
点赞 评论 收藏
分享
用微笑面对困难:只要你保证项目和获奖都是真的就行尤其是“对战,总负责人”啊这些套职,基本上队员,打杂的都这么写
点赞 评论 收藏
分享
Aurora23:属于挂一半,暂时进池子了,隔一段时间没有其他组捞的话就彻底结束了
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
09-17 14:26
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

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