当前位置:网站首页>【Go语言刷题篇】Go从0到入门5:Map综合复习、条件语句、循环语句练习
【Go语言刷题篇】Go从0到入门5:Map综合复习、条件语句、循环语句练习
2022-06-28 19:33:00 【洲的学习笔记】
前言
- 本期是学习Golang:Map综合复习、条件语句、循环语句练习,有不懂的地方可以评论进行讨论!
- 本系列文章采用牛客的核心代码模式进行案例代码提供,帮助大家从0到入门的学习过程中进行配套的刷题~
- 推荐给大家一款刷题、面试的神器,我也是用这一款神器进行学习的!~链接如下:刷题神器跳转链接
- 该神器不仅网页界面十分美观,而且操作起来极易上手入门!非常适合新手进行系统性的学习!
- 小白新手可以通过该神器进行日常的刷题、看大厂面经、学习计算机基础知识、与大牛面对面沟通~ 刷题的图片已经放在下面了~

Q1:Map-字符串构成
问题描述:给定两个字符串des 和src ,判断 des能不能由 src 里面的字符构成,//如果可以,返回 true ;否则返回 false,src中的每个字符只能在 des 中使用一次。
相关知识:
1、for range遍历字符串。
2、cnt[ch-‘a’]隐式转换byte转为int类型。
3、数组的索引可以充当一个map的key,来表示唯一。
示例输入:“ab”,“aab”
示例输出:true
案例代码:
思路:放一个 map 用来保存有哪些元素可以用 用一次-1即可。如果没有直接返回失败。
//import "fmt"
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param des string字符串 * @param src string字符串 * @return bool布尔型 */
func canConstruct(des string, src string) bool {
// write code here
have := make(map[byte]int)
s := []byte(src)
for _, i := range s {
have[i]++
}
p := []byte(des)
for _, i := range p {
if have[i] == 0 {
return false
}
have[i]--
}
return true
}
Q2:Map-不重复的数
问题描述:给定一个数组,找出数组中所有不重复的数字,并按照从小到大的顺序进行输出。
相关知识:
1、map用make方式进行初始化
2、切片可以用[]int{}的方式进行初始化
3、for range遍历切片
4、_,ok :=map[key]的方式判断m中的key是否存在
5、切片用append方式进行追加
示例输入:[1,1,2,2,3,3,4,4,5,5]
示例输出:[]
示例输入:[3,3,2,2,5,5,1,2,2]
示例输出:[1]
案例代码:
import "sort"
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * 最后要有一个 排序的过程 使用sort提供的排序即可 * @param s int整型一维数组 * @return int整型一维数组 */
func getNoRepeat(s []int) []int {
// write code here
var ans []int
have := make(map[int]int)
for _, i := range s {
if _, ok := have[i]; ok == false {
have[i] = 1
}else{
have[i]++
}
}
for i, j := range have{
if j == 1{
ans = append(ans, i)
}
}
sort.Ints(ans)
return ans
}
Q3:条件语句-年龄判定
问题描述:已知年龄的分段如下, 婴儿(出生0-1岁)、幼儿(1-4岁)包含1岁、儿童(5-11)包含5岁、少年(12-18)包含12岁、青年(19-35)包含19岁、中年(36-59)包含36岁、老年(60以上)包含60岁 ,输入一个人的年龄,返回相应的年龄段。
相关知识:
1、if 后面可以接任意数量的 else if 语句。condition 的求值由上到下依次进行,直到某个 if 或者 else if 中的 condition 为 true 时,执行相应的代码块。如果没有一个 conditon 为 true,则执行 else 中的代码块。
示例输入:35
示例输出:“青年”
案例代码:
//import "fmt"
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @param age int整型 年龄 * @return string字符串 */
func getAge( age int ) string {
// write code here
var ans string
switch {
case age <1 && age >= 0:
ans = "婴儿"
case age >=1 && age <= 4:
ans = "幼儿"
case age >= 5 && age <= 11:
ans = "儿童"
case age >= 12 && age <= 18:
ans = "少年"
case age >= 19 && age <= 35:
ans = "青年"
case age >=36 && age <=59:
ans = "中年"
case age >= 60:
ans = "老年"
}
return ans
}
Q4:条件语句-成绩判定
问题描述:根据成绩分数输出成绩等级,判定规则如下 分数低于60 算不及格,60-80 含60 为中等, 80-90含80 为良好,90分以上含90 为优秀。
相关知识:
1、switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上直下逐一测试,直到匹配为止。 Golang switch 分支表达式可以是任意类型,不限于常量。可省略 break,默认自动终止。
switch var1 {
case val1:
…
case val2:
…
default:
…
}
示例输入:59
示例输出:“不及格”
案例代码:
func judgeScore(score int) string {
// write code here
var grade string
switch {
case score < 60:
grade = "不及格"
case score >= 60 && score < 80:
grade = "中等"
case score >= 80 && score < 90:
grade = "良好"
case score >= 90:
grade = "优秀"
}
return grade
}
Q5:循环语句-乘法口诀表
问题描述:打印9*9乘法口诀表。
相关知识:
1、golang中 for 循环中嵌套一个或多个 for 循环,代码格式如下:
for [condition | ( init; condition; increment ) | Range]
{
for [condition | ( init; condition; increment ) | Range]
{
statement(s)
}
statement(s)
}
init: 一般为赋值表达式,给控制变量赋初值;
condition: 关系表达式或逻辑表达式,循环控制条件;
increment: 一般为赋值表达式,给控制变量增量或减量。
statement:循环语句
2、goalng中,fmt.printf 格式化打印 %d表示数字,-3d 表示左对齐,占 3 位 \n表示下一行。
示例输入:
示例输出:
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
1*4=4 2*4=8 3*4=12 4*4=16
1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
案例代码:
import "fmt"
func main() {
fmt.Println("1*1=1")
for i := 2; i <= 9; i++ {
for j := 1; j <= i-1; j++ {
str := fmt.Sprintf("%d*%d=%-3d", j, i,j*i)
fmt.Printf("%s", str)
}
str := fmt.Sprintf("%d*%d=%d", i, i, i*i)
fmt.Printf("%s\n", str)
}
}
Q6:循环语句-坐标转换
问题描述:已知一个mn二维数组,二维数组中的元素的索引(x,y)可以表示为一个二维坐标,现将这个二维坐标转换为一维坐标,一维坐标=xn+y。返回这个一维数组。
相关知识:
1、数组可以通过下标进行访问,下标是从0开始,最后一个元素下标是:len-1
for i := 0; i < len(a); i++ {
}
for index, v := range a {
}
2、长度是数组类型的一部分,因此,var a[5] int和var a[10]int是不同的类型。
3、数组定义:var a [len]int,比如:var a [5]int,数组长度必须是常量,且是类型的组成部分。一旦定义,长度不能变。
示例输入:[[1,2,3],[4,5,6],[7,8,9]]
示例输出:[1,2,3,4,5,6,7,8,9]
案例代码:
//import "fmt"
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * @param array int整型二维数组 * @return int整型一维数组 */
func transform(array [][]int) []int {
// write code here
m := len(array)
n := len(array[0])
var arr []int = make([]int, m*n)
i := 0
for a := 0; a < m; a++ {
for b := 0; b < n; b++ {
arr[i] = array[a][b]
i++
}
}
return arr
}
后文:刷题神器
点击链接进行跳转注册,开始你的保姆级刷题之路吧!刷题打怪码神之路
另外这里不仅仅可以刷题,你想要的这里都会有,十分适合小白和初学者入门学习~
1、算法篇(398题):面试必刷100题、算法入门、面试高频榜单
2、数据结构篇(300题):都是非常经典的链表、树、堆、栈、队列、动态规划等
3、语言篇(500题):C/C++、java、python入门算法练习
4、SQL篇(82题):快速入门、SQL必知必会、SQL进阶挑战、面试真题
5、大厂笔试真题:字节跳动、美团、百度、腾讯…掌握经验不在惧怕面试!

边栏推荐
- Number theory -- detailed proof of Euler function, sieve method for Euler function, Euler theorem and Fermat theorem
- 数字藏品,万字长文,你想知道的大部分问题都讲清楚了从业者必看
- How strong a mathematical foundation does deep learning need?
- 智能计算系统1 环境搭建
- ArrayList of collection
- 内核错误怎么解决?Win11系统内核错误解决方法
- 机器学习笔记 temperature+Softmax
- 2788.Cifera
- 2342
- 《数字经济全景白皮书》消费金融数字化篇 重磅发布
猜你喜欢

Demo of integrated development of intelligent computing system 3 plugin

Bayesian inference problem, MCMC and variational inference

数据基础设施升级窗口下,AI 新引擎的技术方法论

5G NR MBS架构介绍

R language GLM generalized linear model: logistic regression, Poisson regression fitting mouse clinical trial data (dose and response) examples and self-test questions

Bayesian inference problem, MCMC and variational inference

Autumn recruitment experience sharing | how to prepare for bank interview

如何通过W3school学习JS/如何使用W3school的JS参考手册

数字藏品,万字长文,你想知道的大部分问题都讲清楚了从业者必看

释放互联网价值的 Web3
随机推荐
Echart: category text position adjustment of horizontal histogram
Web3 that unleashes the value of the Internet
在arm版本rk3399中搭建halo博客
R language GLM generalized linear model: logistic regression, Poisson regression fitting mouse clinical trial data (dose and response) examples and self-test questions
变分自编码器 (Variational Autoencoders, VAEs)
多测师肖sirapp中riginal error: Could not extract PIDs from ps output. PIDS: [], Procs: [“bad pid
Ffmpeg learning summary
i人事HR系统上架企业微信ISV,增强企微在服务连锁零售等行业深度应用
JVM memory structure
Building tin with point cloud
蓝桥杯 历届试题 蚂蚁感冒
Priority problem when local variables and global variables in C language have the same name (when local variables and global variables exist at the same time, local variables are preferred to be refer
Parallax JS special effect JS carousel map plug-in
数字藏品,万字长文,你想知道的大部分问题都讲清楚了从业者必看
国内有正规安全的外汇交易商吗?
Variational graph auto-encoders (VGAE)
How to resolve kernel errors? Solution to kernel error of win11 system
电脑如何检查驱动程序是否正常
Markdown Mermaid planting grass (1)_ Introduction to Mermaid
C language - function knowledge points