虽然都是很简单的算法,每个都只需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参数,并通过返回字符串true
或false
来确定它是否满足要求。
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:使用正则去匹配
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。