Go语言中文网 为您找到相关结果 12

go反转字符串

Go反转字符串 似乎没什么好办法,string的话也得需要先转换成rune再反转再转成string package main import ( "fmt" ) func reverseString(s string) string { runes := []rune(s) for from, to := 0, len(runes)-1; from < to; from, to = from + 1, to - 1 { runes[from], runes[to] = runes[to], runes[from] } return string(runes) } func main(){ //testString := "abc" testString := "" ans := reverse...阅读全文

博文 2016-06-20 00:00:00 qq_15437667

Golang之字符串反转

package main import "fmt" func reverse(str string) string { var result string strLen := len(str) for i := 0; i < strLen; i++ { result = result + fmt.Sprintf("%c", str[strLen-i-1]) } return result } func reverse1(str string) string { var result []byte tmp := []byte(str) length := len(str) for i := 0; i < length; i++ { result = append(result, tmp[len...阅读全文

博文 2017-12-20 04:00:00 pyyu

字符串反转

字符串反转的Golang实现,应该是最简单的了。废话不多说,代码如下: package main func Reverse(s string) string { r := []rune(s) for i, j := 0, len(r)-1; i < j; i, j = i+1, j-1 { r[i], r[j] = r[j], r[i] } return string(r) } func main() { a := "Hello, 世界" println(a) println(Reverse(a)) } Golang本身支持计算字符串长度,并且由于支持多值赋值,交换值也是格外的简单。其他语言无非要单独处理一下这两个部分,通过遍历计算出字符串长度,再通过异或或者加法交换值。为了能够处理字符串里...阅读全文

博文 2017-02-09 12:25:13 Bryce

【LeetCode】Reverse Integer Go语言实现

问题描述 Reverse digits of an integer. Example1: x = 123, return 321 Example2: x = -123, return -321 题意很明确,将一个整数反转输出。 思路 首先不用考虑用库函数先转为字符串再反转的方式,这根本不是算法。 整体解决思路为,依次取出整数的每一位数,然后反转,再组装成整数即可。有几个点需要考虑: 取末位数。 num % 10 即可。 去掉末位数。 num / 10 即可。 组装整数。定义 sum := 0, 循环数字序列,每次 sum = sum * 10 + 数字即可 溢出问题。问题规定了整数为32位,因此最大值为0x7FFFFFFF, 最小值为-0x80000000 Go实现 用时6ms, 击败20%...阅读全文

博文 2016-11-25 10:00:08 tracker_w

Golang、python中的字符串反转。

在go中,需要用rune来处理,因为涉及到中文或者一些字符ASCII编码大于255的。 func main() { fmt.Println(reverse("Golang python")) } func reverse(src string) string { dst := []rune(src) len := len(dst) var result []rune result = make([]rune, 0) for i := len - 1; i >= 0; i-- { result = append(result, dst[i]) } return string(result) } 而在python中,有几种方法,一个是list的操作,一个是系统的自带的函数,还有一个采用上面的遍历...阅读全文

博文 2017-03-16 02:00:38 大洋的顶端

那些我的代码中从不用的 Golang 特性 - 马特-莱亚

- 我不使用的关键字 我不用 goto goto 会让代码执行逻辑难以阅读和理解。 另外还可以使用 label 标记来组织代码 func main() { outer: for { log.Println("outer") for { log.Println("inner") break outer } } } 我不用 fallthroughgolang 的 switch 足够好用,不需要用 fallthrough 退化到其他语言的模式。 我不用 else 大部分的 else 可以用反转判断来实现。例如: if something.OK() { something.Lock() defer something.Unlock() err := something.Do() if err == ...阅读全文

LeetCode-7-整数反

题目描述 整数反转 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 示例 1: 输入: 123 输出: 321 示例 2: 输入: -123 输出: -321 示例 3: 输入: 120 输出: 21 思路 中规中矩,逐个取出每一位数,存到一个数组中,最后拼接成新的数,因为在平台上int默认为64位整型,所有比较判断溢出即可 Code Golang func reverse(x int) (res int) { min := math.MinInt32 max := math.MaxInt32 bts := []int{} res = x if x < 0 { res = -res } for i:=1;res > 0;i++ { ys := res % 10 bt...阅读全文

博文 2019-07-12 23:32:42 monigo

LeetCode-5-最长回文子串

题目描述 最长回文子串 给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。 示例 1: 输入: "babad" 输出: "bab" 注意: "aba" 也是一个有效答案。 示例 2: 输入: "cbbd" 输出: "bb" 思路 如果把一个字符串反转,反转后的字符串与原来相同,则该字符串是回文串 使用暴力法,搜索上做了一些优化 Code Golang func longestPalindrome(s string) string { if IsPalindrome([]byte(s)) { return s } max := "" l := len(s) cs := []byte(s) for i:=0;i阅读全文

博文 2019-07-12 00:02:45 monigo

[leetcode in golang]9、回文数

数学知识。回文数取长度的一半,将后半反转,考虑反转后会否溢出;考虑负数反转return false. func isPalindrome(x int) bool { if x<0||x%10==0&&x!=0{ return false } revertedNumber := 0 for x > revertedNumber { revertedNumber = revertedNumber * 10 + x % 10 x /= 10 } //当x<=revertedNumber, 则反转已达数字长度一半 return x == revertedNumber || x == revertedNumber/10 ...阅读全文

博文 2019-08-28 01:32:46 反骨奇兵