题目描述

汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!

解题思路

字符串操作

代码实现

PHP:

function LeftRotateString($str, $n)
{
    if(strlen($str) == 0) return $str;
    $str1 = substr($str,0,$n);
    $str2 = substr($str,$n);
    return $str2.$str1;
}

Node:

function LeftRotateString(str, n)
{
    if(!str || str.length === 0) return '';
    let num = n % str.length;
    return str.substr(num) + str.substr(0,num);
}

Golang:

/**
 * [JZ58-中等] 左旋转字符串
 *
 * @param str string 字符串
 * @param n int 整型
 * @return string 字符串
 */
func leftRotateString(str string, n int) string {
    if 0 == len(str) {
        return ""
    }

    n = n % len(str)

    return str[n:] + str[:n]
}

本文由 一切随风 创作,可自由转载、引用,但需署名作者且注明文章出处。

只有地板了

  1. akqqtsummn
    akqqtsummn

    叼茂SEO.bfbikes.com

添加新评论