这一题相对简单,但是代码质量可能不是很好,我分享一下我的做题笔记以及做题过程给各位欣赏,有什么不足望各位大佬指出来

原题目,各位小伙伴也可以试着做一下

. 旋转字符串
中文English
给定一个字符串(以字符数组的形式给出)和一个偏移量,根据偏移量原地旋转字符串(从左向右旋转) 样例
样例 : 输入: str="abcdefg", offset =
输出: str = "efgabcd"
样例解释: 注意是原地旋转,即str旋转后为"efgabcd"
样例 : 输入: str="abcdefg", offset =
输出: str = "abcdefg"
样例解释: 注意是原地旋转,即str旋转后为"abcdefg"
样例 : 输入: str="abcdefg", offset =
输出: str = "gabcdef"
样例解释: 注意是原地旋转,即str旋转后为"gabcdef"
样例 : 输入: str="abcdefg", offset =
输出: str = "fgabcde"
样例解释: 注意是原地旋转,即str旋转后为"fgabcde"
样例 : 输入: str="abcdefg", offset =
输出: str = "efgabcd"
样例解释: 注意是原地旋转,即str旋转后为"efgabcd"
挑战
在数组上原地旋转,使用O()的额外空间 注意事项
offset >=
str的长度 >=
做题笔记
这道题目我分析了一下,想了一个相对简单理解实用的方法

把数组的位置组成一个新数组,对位置数组进行推入弹出操作再将位置数组对应原文字符串得到新文字符串不就可以实现了题目所需的功能了吗?

话不多说开始实现

实现代码

/**
* @param str: An array of char
* @param offset: An integer
* @return:
*/
const rotateString = function (str, offset) {
// write your code here
var strlen = str.length;
var space = new Array();
for (var i = 0; i < strlen; i++) {
space.push(i);//堆入每个位置
}
console.log(space);
for (var j=0;j < offset;j++){
var last = space.pop();// 取出尾部并删除
space.unshift(last);// 添加到头
}
console.log(space);
var newstr = "";
for (var k = 0;k < space.length;k++){
console.log(space[k]);
console.log(newstr);
newstr+= str[space[k]];
}
console.log(newstr);
return newstr;
}

谷歌浏览器测试完成,但是lintcode提交代码却有奇怪的问题

*为什么这样输出还是出现“abcdefg”。搞得我提交不了代码

*

LintCode笔记 - 8. 旋转字符串的更多相关文章

  1. LintCode 面试题 旋转字符串

    1.题目描述 题目链接:http://www.lintcode.com/zh-cn/problem/rotate-string/ 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 2. ...

  2. lintcode :旋转字符串

    题目: 旋转字符串 给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例 对于字符串 "abcdefg". offset=0 => "abcdef ...

  3. LintCode——旋转字符串

    描述:给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转) 样例:对于字符串 "abcdefg"     offset=0 => "abcdefg&qu ...

  4. 剑指Offer面试题:34.翻转单词顺序VS左旋转字符串

    一.题目一:翻转单词顺序 1.1 题目说明 题目一:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.例如输入字符串"I am a st ...

  5. 【面试题042】翻转单词顺序VS左旋转字符串

    [面试题042]翻转单词顺序VS左旋转字符串 题目一:     输入一个英文句子,反转句子中单词的顺序,但单词内字符的顺序不变.为简单起见,标点符号和普通字母一样处理.     例如输入字符串“I a ...

  6. 九度OJ 1362 左旋转字符串(Move!Move!!Move!!!)【算法】

    题目地址:http://ac.jobdu.com/problem.php?pid=1362 题目描述: 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运 ...

  7. 1289 大鱼吃小鱼 1305 Pairwise Sum and Divide 1344 走格子 1347 旋转字符串 1381 硬币游戏

    1289 大鱼吃小鱼 有N条鱼每条鱼的位置及大小均不同,他们沿着X轴游动,有的向左,有的向右.游动的速度是一样的,两条鱼相遇大鱼会吃掉小鱼.从左到右给出每条鱼的大小和游动的方向(0表示向左,1表示向右 ...

  8. 【python学习笔记】3.字符串使用

    [python学习笔记]3.字符串使用 字符串是一种序列,素有标准的序列操作对字符串用样适用,字符串是不可以改变 格式化操作符,%,左侧是格式化字符串,右侧是被格式的值,可以是一个值.元组.字典 数值 ...

  9. 辗转相除法(GCD)求左旋转字符串

    本文写于2017-01-18,从老账号迁移到本账号,原文地址:https://www.cnblogs.com/huangweiyang/p/6297874.html 今天在牛客网上做了一道题,题意就是 ...

随机推荐

  1. Vue可响应式数组方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Dedecms 修改当前位置样式

    当前列表页间隔符样式修改 后台-->系统基本参数-->核心设置-->栏目位置的间隔符号 只有二级位置栏目时的间隔符去除 找到include文件中的typelink.class.php ...

  3. Java实现定时任务的三种简单方法

    第一种方法: /** * 先定义一个任务每天执行的时间点,再写一个死循环,不断地拿当前时间和事先定义的时间去比对,若到时间则执行任务 */ @Test public void test1() { St ...

  4. SpringBoot与(Security)安全

    1.简介 应用程序的两个主要区域 认证(Authentication): 是建立一个它声明的主体的过程(一个"主体" 一般是指用户,设备或一些可以在你的应用程序中执行动作的其他系统 ...

  5. nodejs如何从异步回调函数返回想要的值

    const fs = require('fs') let read=()=>{ fs.readFile("./contents/test.json",(err,data)=& ...

  6. TensorFlow从0到1之XLA加速线性代数编译器(9)

    加速线性代数器(Accelerated linear algebra,XLA)是线性代数领域的专用编译器.根据 https://www.tensorflow.org/performance/xla/, ...

  7. 用turtle画蛇

    import turtle def drawSnake(rad,angle,len,nackrad): for i in range(len): turtle.circle(rad,angle) #画 ...

  8. NodeJs将异步方法改为同步以上传文件为例

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 下面这个例子既写 ...

  9. 多线程集成设计模式--MasterWorker模式讲解(一)

    Master-Worker模式是常用的并行模式之一,它的核心思想是,系统有两个进程协作工作:Master进程,负责接收和分配任务:Worker进程,负责处理子任务.当Worker进程将子任务处理完成后 ...

  10. 输入url后浏览器干了些什么(详解)

    输入url后浏览器干了些什么(详解) DNS(Domain Name System, 域名系统) 解析 DNS解析的过程就是寻找哪台机器上有你真正需要的资源过程.但你在浏览器张红输入一个地址时,例如: ...