Для начала поясню что значат * и ? в маске. *-это последовательность символов, то есть любое количество символов. От 0 до бесконечности. Нам не важно что это за символы важен сам факт их существования или не существования. ?-это только один символ. Опять же, не важно какой, главное, чтобы он был там. Первая маска: A?B*.*C?*. Её можно интерпретировать как A[любой символ]B[последовательность символов или ничего]. [последовательность символов или ничего]C[любой символ] [последовательность символов или ничего]. Под такие условия подходят 5 файлов, которые переходят в каталог friends: ABBCBD.CDDBA ACBDC.ACBA AABBCCDD.DDCCD ACBCACD.AABBCCDD ADBCCAD.CADABC Почему не подходят остальные? ABDCC.ACBDA – нет символа в начале между A и B. BABCDA.ABCD - нет символа A в начале. AABACADA?CDBDADCB – нет точки. Следующая маска: *B?C*.??*D*. На человеческий: [любой символ] B] [последовательность символов или ничего]C[любой символ]. [любой символ] [любой символ] [последовательность символов или ничего]D [последовательность символов или ничего] Результат – 3 файла в папке family : ABBCBD.CDDBA AABBCCDD.DDCCD ADBCCAD.CADABC Остальные: ACBCACD.AABBCCDD – после единственной B сразу идёт C; ACBDC.ACBA – после точки нет D. ответ: ABBCBD.CDDBA AABBCCDD.DDCCD ADBCCAD.CADABC
uses System;
uses System.Collections;
begin
var d := DateTime.Today;
repeat
d := d.AddDays(1);
until d.DayOfWeek = DayOfWeek.Sunday;
var Sundays := new Dictionary<integer, integer>();
repeat
if Sundays.ContainsKey(d.Year) then
Sundays[d.Year] += 1
else
Sundays.Add(d.Year, 1);
d := d.AddDays((-7));
until d.Year <= 1;
var max := Sundays.Values.Max;
Sundays.Where(x -> x.Value = max).Println;
end.
Первая маска: A?B*.*C?*. Её можно интерпретировать как A[любой символ]B[последовательность символов или ничего]. [последовательность символов или ничего]C[любой символ] [последовательность символов или ничего].
Под такие условия подходят 5 файлов, которые переходят в каталог friends:
ABBCBD.CDDBA
ACBDC.ACBA
AABBCCDD.DDCCD
ACBCACD.AABBCCDD
ADBCCAD.CADABC
Почему не подходят остальные? ABDCC.ACBDA – нет символа в начале между A и B. BABCDA.ABCD - нет символа A в начале. AABACADA?CDBDADCB – нет точки.
Следующая маска: *B?C*.??*D*. На человеческий: [любой символ] B] [последовательность символов или ничего]C[любой символ]. [любой символ] [любой символ] [последовательность символов или ничего]D [последовательность символов или ничего]
Результат – 3 файла в папке family :
ABBCBD.CDDBA
AABBCCDD.DDCCD
ADBCCAD.CADABC
Остальные: ACBCACD.AABBCCDD – после единственной B сразу идёт C; ACBDC.ACBA – после точки нет D.
ответ:
ABBCBD.CDDBA
AABBCCDD.DDCCD
ADBCCAD.CADABC