字符串中找一个字母最后出现的位置

发布时间 2023-04-17 21:06:45作者: 烟雨无晴

在一串字符中,找对应字母最后出现的位置

例如 ababtyukab

找a,b,t...字母各自最后出现的位置,一般来说首先想到的肯定是两个for循环,但这样复杂度太高了

因此,今天记录一种一次遍历就可以找到最后下标的思路。

int last[26];
int length = s.size();
for (int i = 0; i < length; i++) {
    last[s[i] - 'a'] = i;
}

代码中用数组记录字母最后出现的位置

假设字符串为abca

那么第一个a, 存为 last[0] = 0;

那么第一个b, 存为 last[1] = 1;

那么第一个c, 存为 last[2] = 2;

随即第二个a出现,last[0] = 3;自然而然地将之前的位置给覆盖了。