算法-判断字符串的循环移动

判断字符串的循环移动

难度:简单

描述:

能够检验某个单词是否为另外一个单词的子字符串。给定 s1 和 s2,请设计一种方法来检验 s2 是否为 s1 的循环移动后的字符串。javascript

样例:

s1 = waterbottle;
s2 = erbottlewat;
返回true;前端

s1 = apple;
s2 = ppale;
返回false;java

思路分析:

将其中一个字符串转成数组来操做,而后再转成字符,回头来比较字符串。数组

代码模板:

/**
 * @param s1: the first string
 * @param s2: the socond string
 * @return: true if s2 is a rotation of s1 or false
 */

const isRotation = function(s1, s2{};

想想再看答案

想想再看答案

想想再看答案

代码:

// 将最后的值拿出来 再放到第一位上去
const isRotation = (s, t) => {
  if (s.length === t.length && s && t) {
    for (let i = 0; i < s.length; i++) {
      t = [...t]; // 转数组
      let pop = t.pop(); // 拿最后一个元素
      t.unshift(pop); // 添加到第一个元素
      t = t.join(''); // 转字符
      if (t === s) return true// 比较
    }
  }
  return false// 字符串长度相等 而且有值
};
console.log(
  '输出:',
  isRotation('waterbottle''erbottlewat'),
  isRotation('apple''ppale')
);

鼓励我一下:

以为还不错的话,给个人项目点个star吧微信

判断字符串的循环移动

难度:简单

描述:

能够检验某个单词是否为另外一个单词的子字符串。给定 s1 和 s2,请设计一种方法来检验 s2 是否为 s1 的循环移动后的字符串。app

样例:

s1 = waterbottle;
s2 = erbottlewat;
返回true;ui

s1 = apple;
s2 = ppale;
返回false;spa

思路分析:

将其中一个字符串转成数组来操做,而后再转成字符,回头来比较字符串。.net

代码模板:

/**
 * @param s1: the first string
 * @param s2: the socond string
 * @return: true if s2 is a rotation of s1 or false
 */

const isRotation = function(s1, s2{};

想想再看答案

想想再看答案

想想再看答案

代码:

// 将最后的值拿出来 再放到第一位上去
const isRotation = (s, t) => {
  if (s.length === t.length && s && t) {
    for (let i = 0; i < s.length; i++) {
      t = [...t]; // 转数组
      let pop = t.pop(); // 拿最后一个元素
      t.unshift(pop); // 添加到第一个元素
      t = t.join(''); // 转字符
      if (t === s) return true// 比较
    }
  }
  return false// 字符串长度相等 而且有值
};
console.log(
  '输出:',
  isRotation('waterbottle''erbottlewat'),
  isRotation('apple''ppale')
);

鼓励我一下:

以为还不错的话,给个人项目点个star吧设计


本文分享自微信公众号 - OBKoro1前端进阶积累(gh_8af2fb8e54a9)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索