Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Trả về chỉ số ký tự lặp đầu tiên trong chuỗi - JavaScript

Viết hàm nhận vào chuỗi, trả về chỉ số (index) của ký tự đầu tiên xuất hiện 2 lần. Trả về -1 nếu không có ký tự lặp.

Ví dụ

Chuỗi: 'Hello world, how are you'

Ký tự 'l' ở vị trí 2 là ký tự đầu tiên lặp (xuất hiện lại ở vị trí 3).

Giải pháp

Sử dụng Map để theo dõi vị trí đầu tiên:

const str = 'Hello world, how are you';
const firstRepeating = str => {
  const map = new Map();
  for (let i = 0; i < str.length; i++) {
    if (map.has(str[i])) {
      return map.get(str[i]); // Trả về chỉ số LẦN ĐẦU
    }
    map.set(str[i], i);
  }
  return -1;
};

console.log(firstRepeating(str));

Kết quả

Đầu ra trong console:

2