📌  相关文章
📜  字符串中的第一个重复字符 javascript (1)

📅  最后修改于: 2023-12-03 15:09:21.486000             🧑  作者: Mango

字符串中的第一个重复字符 javascript

在程序开发过程中,你会遇到需要查找字符串中第一个重复字符的情况。在JavaScript中,有很多种方法可以实现这个功能,以下将为你详细介绍其中两种实现方法。

方法一:使用Map
function firstRecurringCharacter(str) {
  const charMap = new Map();
  for (let char of str) {
    if (charMap.has(char)) {
      return char;
    }
    charMap.set(char, 1);
  }
  return null;
}

console.log(firstRecurringCharacter("ABCA")); // A
console.log(firstRecurringCharacter("BCABA")); // B
console.log(firstRecurringCharacter("ABC")); // null
解释

首先,我们创建了一个Map对象用于存储字符串中每个字符的计数器。然后,我们遍历字符串中的每个字符,如果该字符已经在Map对象中出现过,那么说明该字符是第一个重复字符,我们将其返回;否则,我们将该字符存储进Map对象中。如果整个字符串都被遍历完了,说明没有重复字符,我们返回null。

方法二:使用Set
function firstRecurringCharacter(str) {
  const set = new Set();
  for (let char of str) {
    if (set.has(char)) {
      return char;
    }
    set.add(char);
  }
  return null;
}

console.log(firstRecurringCharacter("ABCA")); // A
console.log(firstRecurringCharacter("BCABA")); // B
console.log(firstRecurringCharacter("ABC")); // null
解释

类似于Map对象的实现方式,我们也可以使用Set来实现查找字符串中第一个重复字符的功能。我们创建了一个Set对象用于存储字符串中的每个字符。在遍历字符串中的每个字符时,如果该字符已经在Set对象中出现过,那么说明该字符是第一个重复字符,我们将其返回;否则,我们将该字符存储进Set对象中。如果整个字符串都被遍历完了,说明没有重复字符,我们返回null。

以上是两种在JavaScript中查找字符串中第一个重复字符的方法,并且它们都能够高效地处理大量字符串中的数据。