Go•di-string-match/solution.go
package main
func diStringMatch(s string) []int {
low, high := 0, len(s)
result := make([]int, 0, len(s)+1)
for _, character := range s {
if character == 'I' {
result = append(result, low)
low++
} else {
result = append(result, high)
high--
}
}
return append(result, low)
}
Python•di-string-match/solution.py
class Solution:
def diStringMatch(self, s: str) -> list[int]:
low, high = class="syntax-number">0, len(s)
result: list[int] = []
for character in s:
if character == class="syntax-string">"I": result.append(low); low += class="syntax-number">1
else: result.append(high); high -= class="syntax-number">1
return result + [low]
TypeScript•di-string-match/solution.ts
function diStringMatch(s: string): number[] {
let low = class="syntax-number">0;
let high = s.length;
const result: number[] = [];
for (const character of s) { if (character === class="syntax-string">"I") { result.push(low); low += class="syntax-number">1; } else { result.push(high); high -= class="syntax-number">1; } }
result.push(low);
return result;
}