逐日一道算法题 - SimpleSymbols(easy-5)

虽然都是很简单的算法,每一个都只需5分钟摆布,但写起来总会碰到差别的小问题,愿望大家能跟我一同天天提高一点点。
更多的小算法演习,能够检察我的文章。

划定规矩

Using the JavaScript language, have the function SimpleSymbols(str) take the str parameter being passed and determine if it is an acceptable sequence by either returning the string true or false. The str parameter will be composed of + and = symbols with several letters between them (ie. ++d+===+c++==a) and for the string to be true each letter must be surrounded by a + symbol. So the string to the left would be false. The string will not be empty and will have at least one letter.

运用JavaScript言语,让函数SimpleSymbols(str)猎取通报的str参数,并经由过程返回字符串truefalse来肯定它是不是满足要求。
str参数将由+=与它们之间的多少字母标记构成(即, ++d+===+C++==a)。
当每一个字母都被+围困时(如 +a+),返回true,不然(如 a+)返回false
ps:该字符串不会为空,而且至少有一个字母。

测试用例

Input:"+d+=3=+s+"
Output:"true"

Input:"f++d+"
Output:"false"

Input:"++f+a+d"
Output:"false"

my code

function SimpleSymbols(str) {
    if (str[0].match(/[a-z]/i) || str[str.length - 1].match(/[a-z]/i)) return false

    for (var i = 1; i < str.length - 1; i++) {
        if (!str[i].match(/[a-z]/i)) continue

        if (str[i - 1] !== '+' || str[i + 1] !== '+') return false
    }

    return true;
}

other code

code-1

function SimpleSymbols(str) {
    if (/^[a-zA-Z]/.test(str) || /[a-zA-Z]$/.test(str)) {
        return false;
    }
    if (/[^+][a-zA-Z]/.test(str) || /[a-zA-Z][^+]/.test(str)) {
        return false;
    }
    return true;
}

code-2

function SimpleSymbols(str) { 
    return (str).match(/([^+][a-z])|([a-z][^+])/gi) === null; 
}

思绪

要领1: 经由过程字符串的遍历,搜检每一个字母是不是被+围困

要领2:运用正则去婚配

    原文作者:an_l
    原文地址: https://segmentfault.com/a/1190000015583379
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞