前端中级算法题

前端中级算法题

  1. 反转字符串

    编写一个函数,接受一个字符串作为输入,并返回反转后的字符串。

    示例:

    function reverseString(str) {
      return str.split('').reverse().join('');
    }
    
    reverseString('hello'); // 输出: 'olleh'
    ```
    
    
  2. 找出数组中的最大值

    编写一个函数,接受一个数字数组作为输入,并返回数组中的最大值。

    示例:

    function findMax(arr) {
      return Math.max(...arr);
    }
    
    findMax([1, 3, 5, 2, 4]); // 输出: 5
    ```
    
    
  3. 判断字符串是否为回文

    编写一个函数,接受一个字符串作为输入,并判断该字符串是否是回文字符串。回文字符串是指正着读和反着读都一样的字符串。

    示例:

    function isPalindrome(str) {
      return str === str.split('').reverse().join('');
    }
    
    isPalindrome('level'); // 输出: true
    ```
    
    
  4. 统计字符串中每个字符的出现次数

    编写一个函数,接受一个字符串作为输入,并返回一个对象,该对象包含字符串中每个字符作为键,以及对应字符出现的次数作为值。

    示例:

    function countCharacters(str) {
      const count = {};
      for (let char of str) {
        count[char] = count[char] ? count[char] + 1 : 1;
      }
      return count;
    }
    
    countCharacters('hello'); // 输出: { h: 1, e: 1, l: 2, o: 1 }
    ```
    
    
  5. 判断两个字符串是否为同构

    编写一个函数,接受两个字符串作为输入,并判断它们是否为同构字符串。同构字符串是指两个字符串中的字符可以被一一映射,且相同位置上的字符在两个字符串中必须相同。

    示例:

    function isIsomorphic(str1, str2) {
      if (str1.length !== str2.length) {
        return false;
      }
      const map1 = {};
      const map2 = {};
      for (let i = 0; i < str1.length; i++) {
        const char1 = str1[i];
        const char2 = str2[i];
        if ((map1[char1] && map1[char1] !== char2) || (map2[char2] && map2[char2] !== char1)) {
          return false;
        }
        map1[char1] = char2;
        map2[char2] = char1;
      }
      return true;
    }
    
    isIsomorphic('egg', 'add'); // 输出: true
    ```
    
    
    

你可能感兴趣的:(前端,算法)