zoukankan      html  css  js  c++  java
  • Confirm the Ending

    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.

     方法一、(自己写的)

     把问题大致看成两方面。如果是一个单词,那么直接调用sbustr(-1),来验证;
    如果是一句话,单词间有空格,那么我先把它转为数组并去掉空格,来获取最后一个单词,然后利用substr(),截取最后一个元素与传参(target)相同长度的字串长度,做判断
    function confirmEnding(str, target) {
      // 请把你的代码写在这里
      //先转数组,拿出最后一个字符的长度
      
     if(str.indexOf(" ")==-1){
       //没有空格,单独一个单词
       var lastChar=str.substr(-1,1);
       if(lastChar==target){
         return true;
       }else{
         return false;
       }
     }else{//转为数组,找到最后一个元素
       var array=str.split(" ");
       //返回最后一个元素
      var lastEle=array[array.length-1];
       if(lastEle.substr(lastEle.indexOf(target))==target){
         return true;
       }else{
         return false;
       } 
     }
    }
    显然每一个判断有一相同部分,都调用了substr()方法,抽象为一条代码
     
    方法二、
     
     
    function confirmEnding(str, target) {
      if ( str.substr(str.length-target.length , str.length) === target) {//也可以直接调用 str.substr(str.length-target.length)==target;判断
        return true;
      }else {
        return false;
      }
    }
    
    confirmEnding("Bastian", "n");

    方法三、

    取巧,我们倒序然后把字符串一个一个字符的分解出来,从头开始判断与target相同长度范围内,头部元素是否完全相同

    function confirmEnding(str, target) {
      // "Never give up and good luck will find you."
      // -- Falcor
      var new_str = str.split("").reverse();
      var new_target = target.split("").reverse();
      for(var i = 0; i < new_target.length; i++){
        if(new_target[i] != new_str[i]){
          return false;
        }
      }
     
      return true;
    }
     
    confirmEnding("He has to give me a new name", "name");

    str.split("").reverse();//先把字符串分解为一个个字符,装进数组里,然后数组倒序

     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    Spring Boot之@ImportResource、配置类、占位符表达式
    Spring Boot之测试类报错问题
    Spring Boot之@EnableAutoConfiguration源码解读
    Spring Boot之第一个程序及执行原理。
    eclipse中git使用中的冲突解决
    python画国旗
    第十六周进度
    个人课程总结
    人月神话之阅读笔记03
    第十五周进度
  • 原文地址:https://www.cnblogs.com/doudou2018/p/9601857.html
Copyright © 2011-2022 走看看