Simplify Path
Problem (yeniden ifade)
Mutlak bir Unix yolunu sadeleştirilmiş kanonik forma çevir (., .. veya gereksiz / olmasın).
Sezgi
/ ile böl. Yığın gerçek segmentleri tutar; .. pop eder; boş ve . yok sayılır.
Yaklaşımlar
Segment yığını
DoğrulanmadıFikir. Her jetonu soldan sağa işle; tek bir baştaki / ile yeniden birleştir.
Adım adım. “/a/./b/../../c/” → yığın [“c”] ile biter → “/c”.
Ödünleşimler. Kök /.. için yığın boşken pop no-op olduğundan / kalır.
export function simplifyPath(path: string): string {
const stack: string[] = [];
for (const part of path.split("/")) {
if (part === "" || part === ".") continue;
if (part === "..") {
if (stack.length) stack.pop();
} else {
stack.push(part);
}
}
return "/" + stack.join("/");
}
export function simplifyPath(path: string): string {
const stack: string[] = [];
for (const part of path.split("/")) {
if (part === "" || part === ".") continue;
if (part === "..") {
if (stack.length) stack.pop();
} else {
stack.push(part);
}
}
return "/" + stack.join("/");
}
Şablon bağlantısı
İç içe / yol yapısının yığın ile parse edilmesi.
Yansıma
..bir segment geri alır; kökteyken pop etmemeli..ve//boş parçası yığına girmez....bir isimdir, üst klasör değil. Sondaki/çıktıyı değiştirmez.- Yığın boşsa cevap
/. Çıktı her zaman/ile başlar.