获取字符串中连续最多的字符以及次数

连续最多的字符

给一个字符串,找出连续最多的字符,以及次数。

例如字符串 `'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++
            }

      

猜你喜欢

转载自blog.csdn.net/m0_38066007/article/details/125032109