连续最多的字符
给一个字符串,找出连续最多的字符,以及次数。
例如字符串 `'aabbcccddeeee11223'`
连续最多的是 `e` ,4 次。
传统方式
嵌套循环,
找出每个字符的连续次数,并记录比较。
时间复杂度看似是 `O(n^2)`,因为是嵌套循环。
**但实际上它的时间复杂度是 `O(n)`,因为循环中有跳转**。
interface IRes {
char: string
length: number
}
/**
* 求连续最多的字符和次数(嵌套循环)
* @param str str
*/
export function findContinuousChar1(str: string): IRes {
const res: IRes = {
char: '',
length: 0
}
const length = str.length
if (length === 0) return res
let tempLength = 0 // 临时记录当前连续字符的长度
// O(n)
for (let i = 0; i < length; i++) {
tempLength = 0 // 重置
for (let j = i; j < length; j++) {
if (str[i] === str[j]) {
tempLength++
}