七叶笔记 » golang编程 » golang面试题3之翻转字符串

golang面试题3之翻转字符串

1、问题描述

请实现⼀个算法,在不使⽤【额外数据结构和储存空间】的情况下,翻转⼀个给定的字

符串(可以使⽤单个过程变量)。

给定⼀个string,请返回⼀个string,为翻转后的字符串。保证字符串的⻓度⼩于等于

5000。

2、解题思路

翻转字符串其实是将⼀个字符串以中间字符为轴,前后翻转,即将str[len]赋值给str[0],

将str[0] 赋值 str[len]。

3、源码参考

 package main

import "fmt"

func main() {
str := "abc123"
s, _ := reverString(str)
fmt.Printf("--->:%v", s)
}

func reverString(s string) (string, bool) {
str := []rune(s)
l := len(str)
if l > 5000 {
return s, false
}
for i := 0; i < l/2; i++ {
str[i], str[l-1-i] = str[l-1-i], str[i]
}
return string(str), true
}


  

相关文章