Testy - Zadanie 8.12.2023 #26
Replies: 6 comments 3 replies
-
Jest to "tricky" zadanie, chyba pierwsze które mocno mnie zaangażowało :) Ale da się posortować wg tej odległości pl -> de -> us |
Beta Was this translation helpful? Give feedback.
-
Słuszna uwaga - narzuciłem tę kolejność samemu, jako dodatkowy wariant pod kolejną strategię. Założenie było po prostu - utwórz implementację pod kolejną wariację danych. |
Beta Was this translation helpful? Give feedback.
-
Hej ! Ja te sortowanie po kodzie kraju zrobiłem w taki sposób - jakieś sugestie? Jak zrobić to optymalniej?
Testy na zielono, ale optymalizacja zawsze na propsie 😁 |
Beta Was this translation helpful? Give feedback.
-
type Country = 'pl' | 'de' | 'us'
type Priority = 'high' | 'medium' | 'low'
export interface Letter {
content: string
country: Country
priority: Priority
}
export interface Strategy {
sortLetters(letters: Letter[]): Letter[]
}
export class PriorityStrategy implements Strategy {
private readonly priorityMap: Record<Priority, number> = {
high: 1,
medium: 2,
low: 3,
}
sortLetters(letters: Letter[]): Letter[] {
return letters
.slice(0)
.sort(
(a, b) => this.priorityMap[a.priority] - this.priorityMap[b.priority],
)
}
}
export class CountryStrategy implements Strategy {
private readonly countryMap: Record<Country, number> = {
pl: 1,
de: 2,
us: 3,
}
sortLetters(letters: Letter[]): Letter[] {
return letters.sort(
(a, b) => this.countryMap[a.country] - this.countryMap[b.country],
)
}
}
export class LengthStrategy implements Strategy {
sortLetters(letters: Letter[]): Letter[] {
return letters.sort((a, b) => a.content.length - b.content.length)
}
}
export class LetterSorter {
constructor(private strategy: Strategy) {}
sortLetters(letters: Letter[]): Letter[] {
return this.strategy.sortLetters(letters)
}
} |
Beta Was this translation helpful? Give feedback.
-
|
Beta Was this translation helpful? Give feedback.
-
Ja miałem taki
i w tym sortowaniu z państwami taką implementację wag:
|
Beta Was this translation helpful? Give feedback.
-
Cześć,
zastanawiam się, czy w teście dotyczącym sortowania listów według kraju pochodzenia nie występuje problem z oczekiwaną kolejnością. Czy sortowanie nie powinno odbywać się alfabetycznie na podstawie kodów krajów np. de, pl, us?
Beta Was this translation helpful? Give feedback.
All reactions