翻转字符串

问题描述

请实现⼀个算法,在不使⽤【额外数据结构和储存空间】的情况下,翻转⼀个给定的字符串(可以使⽤单个过程变量)。 给定⼀个string,请返回⼀个string,为翻转后的字符串。保证字符串的⻓度⼩于等于5000。

解题思路

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

golang方案

package program

import (
    "fmt"
    "testing"
)

func Test_2(t *testing.T) {
    s := "12345678"
    fmt.Println(reversString(s))
}

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

results matching ""

    No results matching ""