How to reverse a string in Go?

前端 未结 28 1912
天涯浪人
天涯浪人 2020-12-04 06:45

How can we reverse a simple string in Go?

28条回答
  •  温柔的废话
    2020-12-04 07:18

    Building on Stephan202's original suggestion, and appears to work for unicode strings:

    import "strings";
    
    func Reverse( orig string ) string {
        var c []string = strings.Split( orig, "", 0 );
    
        for i, j := 0, len(c)-1; i < j; i, j = i+1, j-1 {
            c[i], c[j] = c[j], c[i]
        }
    
        return strings.Join( c, "" );
    }
    

    Alternate, not using strings package, but not 'unicode-safe':

    func Reverse( s string ) string {
        b := make([]byte, len(s));
        var j int = len(s) - 1;
        for i := 0; i <= j; i++ {
            b[j-i] = s[i]
        }
    
        return string ( b );
    }
    

提交回复
热议问题