• 旋转字符串


    要求:

    给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)

    示例:

    对于字符串 "abcdefg".

    offset=0 => "abcdefg"
    offset=1 => "gabcdef"
    offset=2 => "fgabcde"
    offset=3 => "efgabcd"
    
     1 package main
     2 
     3 import "fmt"
     4 
     5 /**
     6  * 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)
     7  * 字符串"abcdefg"
     8  * offset=0 => "abcdefg"
     9  * offset=1 => "gabcdef"
    10  * offset=2 => "fgabcde"
    11  * offset=3 => "efgabcd"
    12  */
    13 func main() {
    14     var offset int = 3
    15     var str = []byte{'a', 'b', 'c', 'd', 'e', 'f', 'g'}
    16     res := strrev(str, offset)
    17     fmt.Println(string(res))
    18 
    19 }
    20 
    21 func strrev(str []byte, offset int) []byte {
    22     //处理异常情况
    23     if offset <= 0 {
    24         return str
    25     }
    26     lstr := len(str)
    27     if lstr == 0 {
    28         return str
    29     }
    30 
    31     //翻转(每次pop最后一个元素,然后push到第一个元素前面)
    32     for i:=0;i<offset%lstr;i++ {
    33         tmp := str[lstr-1]//去最后一个元素
    34         j := lstr - 2
    35         for j >= 0 {//除了最后一个元素之外,其它元素均向后移动一个位置
    36             str[j+1] = str[j]
    37             j--
    38         }
    39         str[0] = tmp
    40     }
    41     return str
    42 }
  • 相关阅读:
    awk使用和详解
    Python【map、reduce、filter】内置函数使用说明
    virtualenv -- python虚拟沙盒
    python--threading多线程
    scrapy入门教程
    用两个栈实现队列
    重建二叉树
    从尾到头打印链表
    替换空格
    二维数组的查找
  • 原文地址:https://www.cnblogs.com/573583868wuy/p/8444725.html
Copyright © 2020-2023  润新知