zoukankan      html  css  js  c++  java
  • Confirm the Ending(算法)

    题目

    检查一个字符串(str)是否以指定的字符串(target)结尾。

    如果是,返回true;如果不是,返回false。

    提示

    String.substr()

    思路

    我们来看看  substr() 的用法。 

    语法:

    str.substr(start[, length])

    start 是一个字符的索引。首字符的索引为 0,最后一个字符的索引为 字符串的长度减去1。substr 从 start 位置开始提取字符,提取 length 个字符(或直到字符串的末尾)。

    如果 start 为正值,且大于或等于字符串的长度,则 substr 返回一个空字符串。

    如果 start 为负值,则 substr 把它作为从字符串末尾开始的一个字符索引。如果 start 为负值且 abs(start) 大于字符串的长度,则 substr 使用 0 作为开始提取的索引。注意负的 start 参数不被 Microsoft JScript 所支持。

    这道题目使用  substr() 的负参数运用可解决。 

    解法

    function confirmEnding(str, target) {
      // "Never give up and good luck will find you."
      return str.substr(-target.length,target.length) === target;
    }

    测试

    confirmEnding("Bastian", "n") 应该返回 true. 

    confirmEnding("Connor", "n") 应该返回 false. 

    confirmEnding("Walking on water and developing software from a specification are easy if both are frozen", "specification") 应该返回 false. 

    confirmEnding("He has to give me a new name", "name") 应该返回 true. 

    confirmEnding("He has to give me a new name", "me") 应该返回 true. 

    confirmEnding("He has to give me a new name", "na") 应该返回 false. 

    confirmEnding("If you want to save our world, you must hurry. We dont know how much longer we can withstand the nothing", "mountain") 应该返回 false.

  • 相关阅读:
    LIST组件使用总结
    openlayers之interaction(地图交互功能)
    vbind:class绑定样式,决定样式的显示与否
    cesium之measure功能实现
    Cesium渲染效果差,锯齿明显,解决办法
    CSS让DIV层叠 两个DIV或多个DIV顺序重叠加
    ES6之import/export命令
    vantui:
    Openlayers简单要素的添加
    Vue中的this表示?
  • 原文地址:https://www.cnblogs.com/codepen2010/p/6812571.html
Copyright © 2011-2022 走看看