zoukankan      html  css  js  c++  java
  • 旋转字符串

    要求:

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

    示例:

    对于字符串 "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 }
  • 相关阅读:
    铁大电梯调度需求分析
    结对开发2
    四则运算3
    团队开发——冲刺2.d
    团队开发——冲刺2.c
    团队开发——冲刺2.b
    团队开发——冲刺2.a
    团队开发——冲刺1.g
    团队开发——冲刺1.f
    团队开发——冲刺1.e
  • 原文地址:https://www.cnblogs.com/573583868wuy/p/8444725.html
Copyright © 2011-2022 走看看