文章目录
43、左旋转字符串
题目描述
汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果。对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。例如,字符序列S=”abcXYZdef”,要求输出循环左移3位后的结果,即“XYZdefabc”。是不是很简单?OK,搞定它!
思路
通过切分字符串,然后将后部分的字符串贴在前部分字符串前面,记住先判断是不是null再判断是不是长度为0.
代码
function LeftRotateString(str, n)
{
if(str == null || str.length == 0) return '';
if(n > str.length) n -= str.length;
//substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。
var str1 = str.substr(0,n);
var str2 = str.substr(n);
var result = str2 + str1;
return result;
}
44、翻转单词顺序列
题目描述
牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
思路一
通过Array封装好的函数reverse();
代码
function ReverseSentence(str)
{
var array = str.split(' ');
//reverse() 方法用于颠倒数组中元素的顺序。
return array.reverse().join(' ');
}
思路二
通过交换首尾指针所指向的元素。
代码
function ReverseSentence(str)
{
// write code here
//trim() 方法用于删除字符串的头尾空格,不会改变原始字符串。
if(!str || !st