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();//先把字符串分解为一个个字符,装进数组里,然后数组倒序

     
     
     
     
     
     
     
     
     
     
     
     
  • 相关阅读:
    js 判断字符串中是否包含某个字符串
    MySQL批量更新数据
    js实现字符串切割并转换成对象格式保存到本地
    C#用openfiledialog文件和savefileDialog打开和保存文件
    C#中e.Cancel,e.Handled的区别与应用
    登录窗体与主窗体的关闭
    C#中WinForm程序退出方法技巧总结
    c# 如何获取项目的根目录
    C# Winform中WndProc 函数作用
    SqlDataAdapter.Update批量数据更新
  • 原文地址:https://www.cnblogs.com/doudou2018/p/9601857.html
Copyright © 2011-2022 走看看