Diskuze: Machr na C# .NET - Krátký analyzátor textů
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 12 zpráv z 112.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Poslat mohu všechny verze, co si pamatuji. Bohužel ta která splňovala podmínky soutěže nejvíce, měla jen 490 znaků, nebo tak nějak... Protože jsem nepočítal s několika faktory - samohlásky se nedají obejít - jen vypsat, počet řádků se musí brát ze Split - ne z Matches - tak jsem musel přidat začátek - ^ atd. Tudíž nejmenší funkční verze:
using System.Text.RegularExpressions;
using System.Linq;
class M
{
static void Main(string[]a)
{
var s=Regex.Replace(System.IO.File.ReadAllText(a[0]),"[!-/]|ch| @","");
foreach(string b in s.Split(' ','\n'))
s+=(b.Length>1&&b.SequenceEqual(b.Reverse()))?'-':'>';
foreach(string o in @"Lines/^|\n;Vowels/ou|[aeiouáíýyůěé];Words/-|>;Digits/\d;Emails/\S@;Palindromes/-".Split(';'))
{
var c=o.Split('/');
System.Console.Write(c[0]+':'+Regex.Matches(s,c[1]).Count+'\n');
}
}
}
439:
using System.Text.RegularExpressions;using System.Linq;using System;class M{static void Main(string[]a){var s=System.IO.File.ReadAllText(a[0]);foreach(string b in s.Split(null))if (b.All(i=>i>43))s+=b.SequenceEqual(b.Reverse())?'-':'>';foreach(string o in @"Řádků/^|\n;Samohlásek/[aeiouáíů];Slov/-|>;Číslic/\d;Emailových adres/\S@;Palindromů/-".Split(';')){var c=o.Split('/');Console.Write("{0}:{1}\n",c[0],Regex.Matches(s,c[1]).Count);};}}
Díky. Já jsem palindromy měl takto:
Regex palindrom = new Regex(@"\b(?<a>\w)+\w?(?<-a>\k<a>)+(?(a)(?!))\b");
(nešlo mi o počet znaků)
Před prázdninami asi ne, jinak by to neměl být problém. Kdyžtak se připomeň.
jeste by se to dalo trosku zkratit vyhozenim string[]a
Žádný - nebo mi to alespoň přijde nereálné - já to udělal přes LINQ:
b.Length>1&&b.SequenceEqual(b.Reverse())
Zdroják jsem poslal - proč si jej neprohlédneš?
Když jsme zkoušel taky jsem použil toto.
Jenomže proti tobě jsem neměl šanci.
Zadat ho napevno, usetril bys 4 znaky (v zadani bylo vstup.txt)
Zobrazeno 12 zpráv z 112.