FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)

  题目描述:

  如果给定的字符串是回文,返回true,反之,返回false。如果一个字符串忽略标点符号、大小写和空格,正着读和反着读一模一样,那么这个字符串就是palindrome(回文)。注意你需要去掉字符串多余的标点符号和空格,然后把字符串转化成小写来验证此字符串是否为回文。函数参数的值可以为"racecar""RaceCar""race CAR"

  算法:

  

function palindrome(str) {
  var str_obj  = str.replace(/[^a-zA-Z0-9]/g,‘‘).toLowerCase().split(‘‘);
  if(str_obj.join(‘‘) === str_obj.reverse().join(‘‘)){
    return true;
  }else
  return false;
}
palindrome("eye");

  

原文地址:https://www.cnblogs.com/humengxiangfeng/p/10515768.html

时间: 2024-10-24 10:23:47

FCC JS基础算法题(2):Check for Palindromes(检查回文字符串)的相关文章

FCC JS基础算法题(0):Reverse a String(翻转字符串)

题目描述: 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串.你的结果必须得是一个字符串. 算法: function reverseString(str) { // 请把你的代码写在这里 str = str.split("").reverse().join(""); return str; } reverseString("hello"); 原文地址:https://www.cnblogs.com/hume

FCC JS基础算法题(1):Factorialize a Number(计算一个整数的阶乘)

题目描述: 如果用字母n来代表一个整数,阶乘代表着所有小于或等于n的整数的乘积.阶乘通常简写成 n!例如: 5! = 1 * 2 * 3 * 4 * 5 = 120. 算法: function factorialize(num) { // 请把你的代码写在这里 var result = 1; for(var i=2;i <= num;i++){ result *= i; } return result; } factorialize(1); 原文地址:https://www.cnblogs.co

FCC JS基础算法题(8):Slasher Flick(截断数组)

题目描述: 返回一个数组被截断n个元素后还剩余的元素,截断从索引0开始. 这个题目有两个方法,都比较简单,用slice方法: function slasher(arr, howMany) { // 请把你的代码写在这里 var newArr = []; newArr = arr.slice(howMany); return newArr; } slasher([1, 2, 3], 2); 然后是用splice方法: function slasher(arr, howMany) { // 请把你的

FCC JS基础算法题(7):Chunky Monkey(分割数组)

题目描述: 把一个数组arr按照指定的数组大小size分割成若干个数组块. 例如:chunk([1,2,3,4],2)=[[1,2],[3,4]]; chunk([1,2,3,4,5],2)=[[1,2],[3,4],[5]]; 没什么好说的,自己做出的方法与网络上的差别不大,以下是代码: function chunk(arr, size) { // 请把你的代码写在这里 var newarr = []; for (var i = 0; i < arr.length; i+=size){ new

常见算法题:判断表达式是否是回文

题目:设计一个算法,判断用户输入的表达式中是否是回文(回文即左右对称的字符串). 思路:这道题与判断表达式括号是否匹配类似,可使用顺序栈来解决,区别是回文要求每个字符都要求匹配,因此将字符串全部入栈,再全部出栈,将最后一个字符与第一个字符比较是否相同,依次比较,若全部相同则为回文. 代码: #include<iostream> #include<string> using namespace std; #define MaxSize 20 //字符串栈 class Stack {

Js基础算法题

1.字符串翻转 1 要求:先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串 2 3 function reverseString(str) { 4 str=str.split('').reverse().join(''); 5 return str; 6 } 7 reverseString("hello"); 8 //split方法把字符串转换成数组 9 //reverse方法翻转数组顺序 10 //join 方法来把数组转换成字符串 2.如果给

fcc 基础算法题

fcc 基础算法题 fcc Reverse a String 翻转字符串 先把字符串转化成数组,再借助数组的reverse方法翻转数组顺序,最后把数组转化成字符串. function reverseString(str) { var arr =str.split(""); //string.split("");以""分割字符串 并返回新的数组 不改变原字符串 arr.reverse(); //反转数组 返回数组的引用 改变原数组 arr = ar

基础算法题-----百元买百鸡

基础算法题-–百元买百鸡 题目:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱. 首先来分析一下: 设公鸡为x只,母鸡为y只,小鸡为z只,可的 x+y+z=100 5x+3y+z/3=100 由于每种鸡最少1只,所以公鸡最多能有(100 - 3 - 1) / 5只,母鸡最多能有(100 - 5 - 1) / 3只 至此我们便可以编码实现了 // 买公鸡最大数量 int gongJI = (10

【LeetCode-面试算法经典-Java实现】【05-Longest Palindromic Substring(最大回文字符串)】

背景 近期開始研究算法,于是在leetcode上做算法题,第五题Longest Palindromic Substring便是关于回文子串的. 什么是回文字串 回文字符串是指将该字符串前后颠倒之后和该字符串一样的字符串.比如:a,aaaa,aba,abba- 最长回文子串 要求最长回文子串,就须要遍历每个子串,时间复杂度是O(N2):推断字串是不是回文,时间复杂度是O(N),这种话算法的时间复杂度就是O(N3). 我刚開始想到的就是中心扩展法,代码例如以下: public static Stri