{"version":3,"sources":["../src/constants.ts","../src/utils/ListNode/index.ts","../src/Easy/longestCommonPrefix/index.ts","../src/Easy/isPalindrome/index.ts","../src/Easy/validBrackets/index.ts","../src/Easy/romanToInt/index.ts","../src/Easy/twoSum/index.ts","../src/Easy/containsDuplicate/index.ts","../src/Easy/isHappy/index.ts","../src/Easy/plusOne/index.ts","../src/Easy/addBinary/index.ts","../src/Medium/atoi/index.ts","../src/Medium/combinationSum/index.ts"],"names":["RomanNumerals","BracketPairMapping","ListNode","_ListNode","val","next","nums","lastNode","num","list","compareFn","x","ListNode_default","longestCommonPrefix_default","words","minLen","min","word","i","prefix","str","isPalindrome_default","s","validBrackets_default","stack","char","romanToInt_default","roman","result","twoSum_default","target","mapping","search","containsDuplicate_default","isHappy_default","n","previous","recurse","sum","acc","plusOne_default","digits","addBinary_default","strs","a","b","atoi_default","combinationSum_default","start","currentSum","currentCombination"],"mappings":"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","sourcesContent":["export enum RomanNumerals {\n    I = 1,\n    V = 5,\n    X = 10,\n    L = 50,\n    C = 100,\n    D = 500,\n    M = 1000\n}\n\nexport type RomanNumeral = keyof typeof RomanNumerals;\n\nexport const BracketPairMapping = new Map([\n    ['(', ')'],\n    ['{', '}'],\n    ['[', ']']\n]);\n","class ListNode {\n    val: number;\n    next: ListNode | null;\n\n    constructor(val: number, next?: ListNode | null) {\n        this.val = val;\n        this.next = next ? next : null;\n    }\n\n    getLastNode(): ListNode {\n        return this.next ? this.next.getLastNode() : this;\n    }\n\n    push(...nums: number[]) {\n        let lastNode = this.getLastNode();\n\n        for (const num of nums) {\n            lastNode.next = new ListNode(num);\n            lastNode = lastNode.next;\n        }\n\n        return this;\n    }\n\n    static from(list: number[]) {\n        if (list.length === 0) throw new Error('Recieved empty array');\n\n        return new ListNode(list[0]!).push(...list.slice(1));\n    }\n\n    toArray(): number[] {\n        if (!this.next) return [this.val];\n        return [this.val, ...this.next.toArray()];\n    }\n\n    sort(compareFn?: (a: number, b: number) => number) {\n        return ((x: ListNode) => {\n            this.val = x.val;\n            this.next = x.next;\n            return x;\n        })(ListNode.from(this.toArray().sort(compareFn)));\n    }\n}\n\nexport default ListNode;\n","export default (words: string[]) => {\n    if (words.length == 0) return '';\n    if (words.length < 2) return words[0];\n\n    const minLen = words.reduce(\n        (min, word) => Math.min(min, word.length),\n        Infinity\n    );\n\n    if (minLen === 0) return '';\n\n    for (let i = minLen; i > 0; i--) {\n        const prefix = words[0]!.slice(0, i);\n        if (words.every((str) => str.slice(0, i) === prefix)) return prefix;\n    }\n\n    return '';\n};\n","export default (x: number) =>\n    ((s: string) => s.split('').reverse().join('') === s)(x.toString());\n","import { BracketPairMapping } from '../../constants';\n\nexport default (str: string) => {\n    const stack: string[] = [];\n\n    for (const char of str) {\n        if (BracketPairMapping.has(char)) stack.push(char);\n        else if (\n            stack.length === 0 ||\n            BracketPairMapping.get(stack.pop()!) !== char\n        )\n            return false;\n    }\n\n    return stack.length === 0;\n};\n","import { RomanNumeral, RomanNumerals } from '../../constants';\n\nexport default (roman: string) => {\n    let result = 0;\n\n    for (let i = 0; i < roman.length; i++) {\n        const val = RomanNumerals[roman[i] as RomanNumeral];\n        const next = RomanNumerals[roman[i + 1] as RomanNumeral] ?? 0;\n\n        result = val >= next ? result + val : result - val;\n    }\n\n    return result;\n};\n","export default (nums: number[], target: number) => {\n    const mapping = new Map<number, number>();\n\n    for (const [i, num] of nums.entries()) {\n        const search = mapping.get(num);\n        if (search != undefined) return [search, i];\n        mapping.set(target - num, i);\n    }\n\n    return [];\n};\n","export default (nums: number[]): boolean => new Set(nums).size !== nums.length;\n","export default (n: number): boolean => {\n    const previous: number[] = [];\n\n    const recurse = (num: number): boolean => {\n        if (previous.includes(num)) return false;\n        previous.push(num);\n\n        const sum = Array.from(num.toString().split(''), Number).reduce(\n            (acc, x) => acc + x * x,\n            0\n        );\n\n        return sum === 1 ? true : recurse(sum);\n    };\n\n    return recurse(n);\n};\n","export default (digits: number[]) =>\n    Array.from((BigInt(digits.join('')) + BigInt(1)).toString(), Number);\n","export default (...strs: string[]): string =>\n    strs\n        .map((str) => BigInt(`0b${str}`))\n        .reduce((a, b) => a + b, BigInt(0))\n        .toString(2);\n","export default (s: string) =>\n    ((x: number) => (isNaN(x) ? 0 : x))(parseInt(s.trim()));\n","export default (nums: number[], target: number) => {\n    const result: number[][] = [];\n\n    const recurse = (\n        start: number,\n        currentSum: number,\n        currentCombination: number[]\n    ) => {\n        if (currentSum === target) {\n            result.push(currentCombination);\n            return;\n        }\n\n        for (let i = start; i < nums.length; i++) {\n            const num = nums[i]!;\n\n            if (currentSum + num > target) continue;\n\n            recurse(i, currentSum + num, [...currentCombination, num]);\n        }\n    };\n\n    recurse(0, 0, []);\n    return result;\n};\n"]}