03192-medium-reverse

Back

type Reverse<T extends any[]> = T extends [infer F, ...infer L] ? [...Reverse<L>, F] : T;

Solution by ZhipengYang0605 #33225

// your answers
type Reverse<T extends any[]> = T extends [...infer L, infer R]? [R, ...Reverse<L>] : T

Solution by pea-sys #32963

// your answers
type Reverse<T extends readonly any[]> = T extends [...infer Rest,infer Last] ? [Last,...Reverse<Rest>]:T;

Solution by sciencefunq #32922

type Reverse<T extends unknown[], Acc extends unknown[] = []> = T extends [infer F, ...infer Rest]
  ? Reverse<Rest, [F, ...Acc]>
  : Acc

Solution by ZhulinskiiDanil #32728

type Reverse<T extends any[]> = T extends [infer F, ...infer Rest]
  ? [...Reverse<Rest>, F]
  : [];

Solution by kai-phan #32516

type Reverse<T, U extends unknown[] = []> = T extends [...infer F, infer Last]
	? F["length"] extends 0
		? [...U, Last]
		: Reverse<F, [...U, Last]> //
	: [];

Solution by gasmg #32208

type Reverse<T extends unknown[]> = T extends [... infer R, infer L] ? [L, ...Reverse<R>] : T;

Solution by ricky-fn #31918

type Reverse<
  T extends any[],
  U extends any[] = []
> = U["length"] extends T["length"] ? U : Reverse<T, [T[U["length"]], ...U]>;

Solution by vipulpathak113 #31785

// 递归
type Reverse<T extends unknown[]> = T extends [infer First, ...infer Rest] ? [...Reverse<Rest>, First] : T

Solution by Yand-hi #30019

Solution:

type Reverse<T extends any[]> = T extends [infer F, ...infer R] ? [...Reverse<R>, F] : T;

Solution by DmitriiBr #29555

type Reverse<T extends any[]> = T extends [infer A, ...infer B] ? [...Reverse<B>, A]: [];

type R = Reverse<[1, 2, 3, 4]>;

Solution by sundial-dreams #29492

type Reverse<T extends any[], Result extends any[] = []> = T extends [...infer A, infer B] ? Reverse<A, [...Result, B]> : Result

Solution by dmytro-shumak #29225

type Reverse<T extends unknown[]> = T extends [infer F, ...infer R] ? [...Reverse<R>, F] : T;

Solution by DoubleWoodLin #28700

// your answers
type Reverse<T extends any[]> = T extends [infer F, ...infer Rest] ? [...Reverse<Rest>, F] : T;

Solution by daiki-skm #28127

type Reverse<T extends any[], Acc extends any[] = []> = T extends [infer A, ...infer Rest] ? Reverse<Rest, [A, ...Acc]> : Acc

Solution by devSoyoung #27725

type Reverse<T extends any[], U extends any[] = []> =  T extends [...infer O, infer L] ? Reverse<O, Push<U, L>> : U;

Solution by 8471919 #27696

type Reverse<T extends any[], P extends any[] = []> = T extends [infer L, ...infer R] ? Reverse<R, [L, ...P]>: P

Solution by isntkyu #27687

type Reverse<T extends unknown[]> = T extends [infer First, ...infer Tail] ? [...Reverse<Tail>, First] : []

Solution by jjswifty #27635

type Reverse<T, S extends string[] = []> = T extends [...infer Pre, infer Next] ? Reverse<Pre, [...S, Next & string]> : S

Solution by jiechliu #27450

type Reverse<T extends any[], R extends any[] = []> = T extends [...infer F, infer L] ? Reverse<F, [...R, L]> : R

Solution by ZhipengYang0605 #27255

type Reverse<T extends any[]> = T extends [...infer F, infer R] ? [R, ...Reverse<F>] : T

Solution by RainbowIsPerfect #27051

type Reverse<T extends unknown[]> = T extends [...infer Rest, infer Last]
  ? [Last, ...Reverse<Rest>]
  : T

Solution by HubooDeclan #27030

// your answers
type Reverse<T extends string[]> = T extends [infer F, ...infer R, infer L]
  ? [L, ...R, F]
  : T

Solution by forzxt #27023

type Reverse<T extends unknown[]> = T extends [...infer R, infer L] ? R extends [] ? T : [L, ...Reverse<R>] : []

Solution by smileboyi #26963

type ReverseRec<T, Acc extends unknown[]> = T extends [
  infer first,
  ...infer rest
]
  ? ReverseRec<rest, [first, ...Acc]>
  : Acc;

type Reverse<T> = T extends [] ? T : ReverseRec<T, []>;

Solution by frankie303 #26953

type Reverse<T extends unknown[]> = T extends [infer First, ...infer Rest] ? [...Reverse<Rest>, First] : T;

Solution by rldnd #26856

// your answers
type Reverse<T extends unknown[]> = T extends [...infer R, infer L]
  ? [L, ...Reverse<R>]
  : T;

Solution by CheolMinBae #26678

// type Reverse<T extends string[]> = T extends [infer First, ...infer Other] ? [...Reverse<Other>, First] : [];
type Reverse<T extends unknown[]> = T extends [infer First, ...infer Other] ? [...Reverse<Other>, First] : [];

Solution by jsujeong #26589

// your answers

type Reverse<T extends string[], R extends string[] = []> = T extends [...infer Rest extends string[], infer T extends string] ? Reverse<Rest, [...R, T]> : R

Solution by hhk9292 #26563

// 你的答案
type Reverse<T extends unknown[]> = T extends [infer S, ...infer R] ? [...Reverse<R>, S] : T;

Solution by Hencky #26551