【Go语言刷题篇】Go从0到入门1:输出、变量、常量、字符串、指针与值的简单 ...

打印 上一主题 下一主题

主题 547|帖子 547|积分 1641

Go从0到入门



前言

本专栏系列都采用牛客的ACM刷题模式。
Q1:输出入门

题目要求:输出打印"Hello World!"
相关知识:
1、main函数是go语言程序的默认入口函数(主函数):func main()
2、go也类似其他函数一样,都是使用默认参数args,如fmt.Println(args…)
案例代码
  1. package main
  2. import (
  3.     "fmt"
  4. )
  5. func main() {
  6.     fmt.Println("Hello World!")
  7. }
复制代码
Q2:定义变量并输出变量

题目要求:已知小明的信息(姓名:小明,年龄:23,性别:男),定义三个变量,分别表示姓名(string类型),年龄(int类型),性别(男true,女false,bool类型),然后按照姓名,年龄,性别的顺序,逐行输出对应的信息。
相关知识:
1、Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。
2、string,int,bool 都是基本数据类型。
3、Go语言声明变量的时候为其指定初始值,格式如下:var 变量名 类型 = 表达式。
4、Go语言可以使用自动判别的形式来进行快速定义即 age:=23 系统会自动判别其类型为int类型。
5、定义的时候可以统一定义,如下代码块
  1. func main() {
  2.         var (
  3.                 name string
  4.             age  int
  5.                 sex  bool
  6.         )
复制代码
案例代码
  1. package main
  2. import (
  3.     "fmt"
  4. )
  5. func main() {
  6. //     name := "小明"
  7. //     age := 23
  8. //     sex := true
  9.     var name string = "小明"
  10.     var age int = 23
  11.     var sex bool = true
  12.    
  13.     fmt.Println(name)
  14.     fmt.Println(age)
  15.     fmt.Println(sex)
  16. }
复制代码
Q3:常量

题目要求:定义三个常量来分别表示中国,英国,美国这三个国家的名称,并按照中国,英国,美国的顺序逐行打印。
相关知识:
1、Go语言的常量声明:const 变量名 类型 = 表达式。
2、对于定义string的时候不能使用单引号,‘国’这样的运行是会报错的。
案例代码
  1. package main
  2. import  "fmt"
  3. func main() {
  4.    
  5.   const china string = "中国"
  6.   const english string = "英国"
  7.   const america string = "美国"
  8.   
  9.     fmt.Println(china)
  10.     fmt.Println(english)
  11.     fmt.Println(america)
  12.    
  13. }
复制代码
Q4:值和指针

题目要求:给定两个变量a,b,判断两个变量的地址,值(a,b的地址取得)是否相等,将结果依次存入切片,并返回。
相关知识:
1、Go语言中的指针操作非常简单,只需要记住两个符号:&(取地址)和*(根据地址取值)
2、每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。
3、Go语言中使用&字符放在变量前面对变量进行“取地址”操作。 Go语言中的值类型(int、float、bool、string、array、struct)都有对应的指针类型,如:*int、*int64、*string等。
示例输入输出:
输入:1,2
返回值:[false,false]
案例代码
  1. func equal( a int ,  b int ) []bool {
  2.     // write code here
  3.     return []bool {&a ==&b ,a==b}
  4. }
复制代码
Q5:拼接字符串

题目要求:给定一个字符串数组,将其拼接成一个字符串。
相关知识:
1、Go语言中使用for循环遍历切片。
2、G语言中使用“+”"可以拼接字符串。
示例输入输出:
输入:[“hello”,“-”,“world”]
输出:“hello-world”
案例代码
  1. func join( s []string ) string {
  2.     // write code here
  3.     var res string
  4.     for _,v := range s {
  5.         res += v
  6.     }
  7.     return res
  8. }
复制代码
Q6:字符数量

题目要求:给定一个字符串,统计其中的字符个数(一个中文算一个)。
相关知识:
1、汉字是采用unicode编码,占三个字节。
2、字符传转化为rune数组。
3、rune是int32的别名(-231~231-1),对比byte(-128~127),可表示的字符更多。
4、len()可以求出rune数组的长度。
示例输入输出:
输入:“小明的英文名叫jack”
输出:11
案例代码
  1. func count( s string ) int {
  2.     // write code here
  3.     return len([]rune(s))
  4. }
复制代码
Q7:回文数

题目要求:给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
相关知识:
1、整型转化为字符串。
2、字符串的遍历。
案例代码:
  1. import "strconv"
  2. //import "fmt"
  3. /**
  4. * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
  5. * @param x int整型
  6. * @return bool布尔型
  7. */
  8. func isPalindrome(x int) bool {
  9.         // write code here
  10.         var str string = strconv.Itoa(x)
  11.         length := len(str)
  12.         for i := 0; i < length/2; i++ {
  13.                 if str[i] != str[length-i-1] {
  14.                         return false
  15.                 }
  16.         }
  17.         return true
  18. }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表