1373 lines
30 KiB
HTML
1373 lines
30 KiB
HTML
<!doctype html>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<html
|
||
class="not-ready lg:text-base"
|
||
style="--bg:#faf8f1"
|
||
lang="pt-br"
|
||
dir="ltr"
|
||
><head>
|
||
<meta charset="utf-8" />
|
||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||
<meta
|
||
name="viewport"
|
||
content="width=device-width, initial-scale=1, shrink-to-fit=no"
|
||
/>
|
||
|
||
|
||
<title>Find All Possible Words From Two Syllables - Developer Bedoya</title>
|
||
|
||
|
||
<meta name="theme-color" />
|
||
|
||
<meta name="description" content="The complete code can be found at my repository.
|
||
My wife is a special needs teacher, and her speciality is to teach how to read and write in portuguese for their challenged students. She developed a “method” for teaching portuguese, and she starts with simple words with two syllables, each two characters long:
|
||
babá, casa, pera, saco, lobo, etc... So I was automatically challenged to create a list of all the worls thah can be made using two syllables, each two characters long: a vocal and a consonant:" />
|
||
<meta name="author" content="Daniel Bedoya Alzate" /><link rel="preload stylesheet" as="style" href="https://developerbedoya.net/main.min.css" />
|
||
|
||
|
||
<link rel="preload" as="image" href="https://developerbedoya.net/theme.svg" />
|
||
|
||
<link rel="preload" as="image" href="https://www.gravatar.com/avatar/a59eeed83af0fccd921266a8f3e30019?s=160&d=identicon" />
|
||
|
||
<link rel="preload" as="image" href="https://developerbedoya.net/twitter.svg" /><link rel="preload" as="image" href="https://developerbedoya.net/github.svg" /><link rel="preload" as="image" href="https://developerbedoya.net/instagram.svg" /><link rel="preload" as="image" href="https://developerbedoya.net/rss.svg" />
|
||
|
||
<script
|
||
defer
|
||
src="https://developerbedoya.net/highlight.min.js"
|
||
onload="hljs.initHighlightingOnLoad();"
|
||
></script>
|
||
|
||
|
||
<link
|
||
rel="icon"
|
||
href="https://developerbedoya.net/favicon.ico"
|
||
/>
|
||
<link
|
||
rel="apple-touch-icon"
|
||
href="https://developerbedoya.net/apple-touch-icon.png"
|
||
/>
|
||
|
||
<meta name="generator" content="Hugo 0.131.0">
|
||
|
||
|
||
|
||
<meta itemprop="name" content="Find All Possible Words From Two Syllables">
|
||
<meta itemprop="description" content="The complete code can be found at my repository.
|
||
My wife is a special needs teacher, and her speciality is to teach how to read and write in portuguese for their challenged students. She developed a “method” for teaching portuguese, and she starts with simple words with two syllables, each two characters long:
|
||
babá, casa, pera, saco, lobo, etc... So I was automatically challenged to create a list of all the worls thah can be made using two syllables, each two characters long: a vocal and a consonant:">
|
||
<meta itemprop="datePublished" content="2022-12-24T01:17:32-03:00">
|
||
<meta itemprop="dateModified" content="2022-12-24T01:17:32-03:00">
|
||
<meta itemprop="wordCount" content="1412">
|
||
<meta itemprop="keywords" content="Csharp,Portuguese,Education"><meta property="og:url" content="https://developerbedoya.net/posts/find-all-possible-words-from-two-sillabes/">
|
||
<meta property="og:site_name" content="Developer Bedoya">
|
||
<meta property="og:title" content="Find All Possible Words From Two Syllables">
|
||
<meta property="og:description" content="The complete code can be found at my repository.
|
||
My wife is a special needs teacher, and her speciality is to teach how to read and write in portuguese for their challenged students. She developed a “method” for teaching portuguese, and she starts with simple words with two syllables, each two characters long:
|
||
babá, casa, pera, saco, lobo, etc... So I was automatically challenged to create a list of all the worls thah can be made using two syllables, each two characters long: a vocal and a consonant:">
|
||
<meta property="og:locale" content="pt_br">
|
||
<meta property="og:type" content="article">
|
||
<meta property="article:section" content="posts">
|
||
<meta property="article:published_time" content="2022-12-24T01:17:32-03:00">
|
||
<meta property="article:modified_time" content="2022-12-24T01:17:32-03:00">
|
||
<meta property="article:tag" content="Csharp">
|
||
<meta property="article:tag" content="Portuguese">
|
||
<meta property="article:tag" content="Education">
|
||
|
||
<meta name="twitter:card" content="summary">
|
||
<meta name="twitter:title" content="Find All Possible Words From Two Syllables">
|
||
<meta name="twitter:description" content="The complete code can be found at my repository.
|
||
My wife is a special needs teacher, and her speciality is to teach how to read and write in portuguese for their challenged students. She developed a “method” for teaching portuguese, and she starts with simple words with two syllables, each two characters long:
|
||
babá, casa, pera, saco, lobo, etc... So I was automatically challenged to create a list of all the worls thah can be made using two syllables, each two characters long: a vocal and a consonant:">
|
||
|
||
<link rel="canonical" href="https://developerbedoya.net/posts/find-all-possible-words-from-two-sillabes/" />
|
||
</head>
|
||
<body
|
||
class="bg-(--bg) text-black antialiased duration-200 ease-out [-webkit-tap-highlight-color:transparent] dark:text-white"
|
||
><header
|
||
class="mx-auto flex h-[4.5rem] max-w-(--w) px-8 whitespace-nowrap lg:justify-center"
|
||
>
|
||
<div class="relative z-50 flex items-center ltr:mr-auto rtl:ml-auto">
|
||
<a
|
||
class="-translate-y-[1px] text-2xl font-medium"
|
||
href="https://developerbedoya.net/"
|
||
>Developer Bedoya</a
|
||
>
|
||
<div
|
||
class="btn-dark text-[0px] ltr:ml-4 rtl:mr-4 h-6 w-6 shrink-0 cursor-pointer [background:url(./theme.svg)_left_center/cover_no-repeat] dark:invert dark:[background-position:right]"
|
||
role="button"
|
||
aria-label="Dark"
|
||
></div>
|
||
</div>
|
||
|
||
<div
|
||
class="btn-menu relative z-50 flex h-[4.5rem] w-[5rem] shrink-0 cursor-pointer flex-col items-center justify-center gap-2.5 lg:hidden ltr:-mr-8 rtl:-ml-8"
|
||
role="button"
|
||
aria-label="Menu"
|
||
></div>
|
||
|
||
<script>
|
||
|
||
const htmlClass = document.documentElement.classList;
|
||
setTimeout(() => {
|
||
htmlClass.remove('not-ready');
|
||
}, 10);
|
||
|
||
|
||
const btnMenu = document.querySelector('.btn-menu');
|
||
btnMenu.addEventListener('click', () => {
|
||
htmlClass.toggle('open');
|
||
});
|
||
|
||
|
||
const metaTheme = document.querySelector('meta[name="theme-color"]');
|
||
const lightBg = '#faf8f1'.replace(/"/g, '');
|
||
const setDark = (isDark) => {
|
||
metaTheme.setAttribute('content', isDark ? '#000' : lightBg);
|
||
htmlClass[isDark ? 'add' : 'remove']('dark');
|
||
localStorage.setItem('dark', isDark);
|
||
};
|
||
|
||
|
||
const darkScheme = window.matchMedia('(prefers-color-scheme: dark)');
|
||
if (htmlClass.contains('dark')) {
|
||
setDark(true);
|
||
} else {
|
||
const darkVal = localStorage.getItem('dark');
|
||
setDark(darkVal ? darkVal === 'true' : darkScheme.matches);
|
||
}
|
||
|
||
|
||
darkScheme.addEventListener('change', (event) => {
|
||
setDark(event.matches);
|
||
});
|
||
|
||
|
||
const btnDark = document.querySelector('.btn-dark');
|
||
btnDark.addEventListener('click', () => {
|
||
setDark(localStorage.getItem('dark') !== 'true');
|
||
});
|
||
</script>
|
||
|
||
<div
|
||
class="nav-wrapper fixed inset-x-0 top-full z-40 flex h-full flex-col justify-center bg-(--bg) pb-16 duration-200 select-none lg:static lg:h-auto lg:flex-row lg:bg-transparent! lg:pb-0 lg:transition-none"
|
||
><nav
|
||
class="lg:ml-12 lg:flex lg:flex-row lg:items-center lg:space-x-10 rtl:space-x-reverse"
|
||
><a
|
||
class="block text-center text-xl leading-[5rem] lg:text-base lg:font-normal"
|
||
href="/cv/"
|
||
>Cvs</a
|
||
><a
|
||
class="block text-center text-xl leading-[5rem] lg:text-base lg:font-normal"
|
||
href="/links/"
|
||
>Links</a
|
||
><a
|
||
class="block text-center text-xl leading-[5rem] lg:text-base lg:font-normal"
|
||
href="/posts/"
|
||
>Posts</a
|
||
><a
|
||
class="block text-center text-xl leading-[5rem] lg:text-base lg:font-normal"
|
||
href="/slides/"
|
||
>Slides</a
|
||
></nav><nav
|
||
class="mt-12 flex justify-center space-x-10 lg:mt-0 lg:items-center ltr:lg:ml-14 rtl:space-x-reverse rtl:lg:mr-14 dark:invert"
|
||
>
|
||
<a
|
||
class="h-7 w-7 text-[0px] [background:var(--url)_center_center/cover_no-repeat] lg:h-6 lg:w-6"
|
||
style="--url: url(./twitter.svg)"
|
||
href="https://twitter.com/developerbedoya"
|
||
target="_blank"
|
||
rel="me"
|
||
>twitter</a>
|
||
<a
|
||
class="h-7 w-7 text-[0px] [background:var(--url)_center_center/cover_no-repeat] lg:h-6 lg:w-6"
|
||
style="--url: url(./github.svg)"
|
||
href="https://github.com/developerbedoya"
|
||
target="_blank"
|
||
rel="me"
|
||
>github</a>
|
||
<a
|
||
class="h-7 w-7 text-[0px] [background:var(--url)_center_center/cover_no-repeat] lg:h-6 lg:w-6"
|
||
style="--url: url(./instagram.svg)"
|
||
href="https://instagram.com/developerbedoya"
|
||
target="_blank"
|
||
rel="me"
|
||
>instagram</a>
|
||
<a
|
||
class="h-7 w-7 text-[0px] [background:var(--url)_center_center/cover_no-repeat] lg:h-6 lg:w-6"
|
||
style="--url: url(./rss.svg)"
|
||
href="https://developerbedoya.net/index.xml"
|
||
target="_blank"
|
||
rel="alternate"
|
||
>rss</a>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
<main
|
||
class="prose prose-neutral dark:prose-invert relative mx-auto min-h-[calc(100vh-9rem)] max-w-(--w) px-8 pt-14 pb-16"
|
||
><article>
|
||
<header class="mb-14">
|
||
<h1 class="my-0! pb-2.5">Find All Possible Words From Two Syllables</h1><div class="text-xs antialiased opacity-60"><time>Dec 24, 2022</time></div></header>
|
||
|
||
<section><p>The complete code can be found at <a href="https://github.com/developerbedoya/palavras-duas-silabas-vogal-consonante">my repository</a>.</p>
|
||
<p>My wife is a special needs teacher, and her speciality is to teach how to read and write in portuguese for their challenged students. She developed a “method” for teaching portuguese, and she starts with simple words with two syllables, each two characters long:</p>
|
||
<pre tabindex="0"><code>babá, casa, pera, saco, lobo, etc...
|
||
</code></pre><p>So I was automatically challenged to create a list of all the worls thah can be made using two syllables, each two characters long: a vocal and a consonant:</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> ListaPalavras;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> vogais = <span style="color:#66d9ef">new</span> <span style="color:#66d9ef">char</span>[] { <span style="color:#e6db74">'a'</span>, <span style="color:#e6db74">'e'</span>, <span style="color:#e6db74">'i'</span>, <span style="color:#e6db74">'o'</span>, <span style="color:#e6db74">'u'</span> };
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> consonantes = <span style="color:#66d9ef">new</span> <span style="color:#66d9ef">char</span>[] { <span style="color:#e6db74">'b'</span>, <span style="color:#e6db74">'c'</span>, <span style="color:#e6db74">'d'</span>, <span style="color:#e6db74">'f'</span>, <span style="color:#e6db74">'g'</span>, <span style="color:#e6db74">'h'</span>, <span style="color:#e6db74">'j'</span>, <span style="color:#e6db74">'k'</span>, <span style="color:#e6db74">'l'</span>, <span style="color:#e6db74">'m'</span>,
|
||
</span></span><span style="display:flex;"><span> <span style="color:#e6db74">'n'</span>, <span style="color:#e6db74">'p'</span>, <span style="color:#e6db74">'q'</span>, <span style="color:#e6db74">'r'</span>, <span style="color:#e6db74">'s'</span>, <span style="color:#e6db74">'t'</span>, <span style="color:#e6db74">'v'</span>, <span style="color:#e6db74">'w'</span>, <span style="color:#e6db74">'x'</span>, <span style="color:#e6db74">'y'</span>, <span style="color:#e6db74">'z'</span>};
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> listaPalavrasDuasSilabas = PermutacaoSilabas.Cria(vogais, consonantes);
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">var</span> listaPalavrasPTBR = (<span style="color:#66d9ef">await</span> DicionarioWeb.Obtem(<span style="color:#e6db74">"pt_BR"</span>))
|
||
</span></span><span style="display:flex;"><span> .FiltraPorTamanhoMaximoPalavra(<span style="color:#ae81ff">4</span>)
|
||
</span></span><span style="display:flex;"><span> .FiltraPorDicionario(listaPalavrasDuasSilabas);
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>listaPalavrasPTBR.Palavras.AsParallel().ForAll(Console.WriteLine);
|
||
</span></span></code></pre></div><p>The static class <code>PermutacaoSilabas</code> makes a list of all possible words using a combination of two syllables, each one with 2 vocals and 2 consonants.</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> ListaPalavras;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Collections.Generic;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">PermutacaoSilabas</span> : IListaPalavras
|
||
</span></span><span style="display:flex;"><span>{
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">private</span> IEnumerable<<span style="color:#66d9ef">string</span>> _palavras;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> IEnumerable<<span style="color:#66d9ef">string</span>> Palavras { <span style="color:#66d9ef">get</span> => _palavras; }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">private</span> PermutacaoSilabas(IEnumerable<<span style="color:#66d9ef">string</span>> palavras)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> _palavras = palavras;
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> PermutacaoSilabas Cria(IEnumerable<<span style="color:#66d9ef">char</span>> listaVogais, IEnumerable<<span style="color:#66d9ef">char</span>> listaConsonantes)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">var</span> combinacoesSilabicas = <span style="color:#66d9ef">new</span> List<<span style="color:#66d9ef">string</span>>();
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">var</span> combinacoesPalavras = <span style="color:#66d9ef">new</span> List<<span style="color:#66d9ef">string</span>>();
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">foreach</span> (<span style="color:#66d9ef">var</span> vogal <span style="color:#66d9ef">in</span> listaVogais)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">foreach</span> (<span style="color:#66d9ef">var</span> consonante <span style="color:#66d9ef">in</span> listaConsonantes)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> combinacoesSilabicas.Add(<span style="color:#e6db74">$"{consonante}{vogal}"</span>);
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">foreach</span> (<span style="color:#66d9ef">var</span> primeiraSilaba <span style="color:#66d9ef">in</span> combinacoesSilabicas)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">foreach</span> (<span style="color:#66d9ef">var</span> segundaSilaba <span style="color:#66d9ef">in</span> combinacoesSilabicas)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> combinacoesPalavras.Add(<span style="color:#e6db74">$"{primeiraSilaba}{segundaSilaba}"</span>);
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#66d9ef">new</span> PermutacaoSilabas(combinacoesPalavras);
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>}
|
||
</span></span></code></pre></div><p>The static class <code>DicionarioWeb</code> downloads the list of words from the libreoffice dictionary.</p>
|
||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-csharp" data-lang="csharp"><span style="display:flex;"><span><span style="color:#66d9ef">using</span> System.Text.RegularExpressions;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">namespace</span> ListaPalavras;
|
||
</span></span><span style="display:flex;"><span><span style="color:#66d9ef">public</span> <span style="color:#66d9ef">class</span> <span style="color:#a6e22e">DicionarioWeb</span> : IListaPalavras
|
||
</span></span><span style="display:flex;"><span>{
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">private</span> IEnumerable<<span style="color:#66d9ef">string</span>> _palavras;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> IEnumerable<<span style="color:#66d9ef">string</span>> Palavras { <span style="color:#66d9ef">get</span> => _palavras; }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">private</span> DicionarioWeb(IEnumerable<<span style="color:#66d9ef">string</span>> palavras)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> _palavras = palavras;
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> <span style="color:#66d9ef">static</span> <span style="color:#66d9ef">async</span> Task<DicionarioWeb> Obtem(<span style="color:#66d9ef">string</span> codigoLinguagem)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">string</span> baseUrl = <span style="color:#e6db74">"https://raw.githubusercontent.com/"</span>;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">string</span> requestUrl = <span style="color:#e6db74">$"LibreOffice/dictionaries/master/{codigoLinguagem}/{codigoLinguagem}.dic"</span>;
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">var</span> httpClient = <span style="color:#66d9ef">new</span> HttpClient();
|
||
</span></span><span style="display:flex;"><span> httpClient.BaseAddress = <span style="color:#66d9ef">new</span> Uri(baseUrl);
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">string</span> conteudoDicionario = <span style="color:#66d9ef">await</span> httpClient.GetStringAsync(requestUrl);
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">var</span> regexPalavraDicionario = <span style="color:#66d9ef">new</span> Regex(<span style="color:#e6db74">"[^/]+"</span>, RegexOptions.Compiled);
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">var</span> listaPalavras = conteudoDicionario.Split(<span style="color:#e6db74">'\n'</span>)
|
||
</span></span><span style="display:flex;"><span> .Select(p => regexPalavraDicionario.Matches(p).FirstOrDefault()?.Value ?? <span style="color:#e6db74">""</span>)
|
||
</span></span><span style="display:flex;"><span> .Where(p => !<span style="color:#66d9ef">string</span>.IsNullOrWhiteSpace(p));
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#66d9ef">new</span> DicionarioWeb(listaPalavras);
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> DicionarioWeb FiltraPorTamanhoMaximoPalavra(<span style="color:#66d9ef">int</span> numeroMaximoLetras)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> _palavras = _palavras.Where(p => p.Length <= numeroMaximoLetras);
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#66d9ef">this</span>;
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">public</span> DicionarioWeb FiltraPorDicionario(IListaPalavras dicionario)
|
||
</span></span><span style="display:flex;"><span> {
|
||
</span></span><span style="display:flex;"><span> _palavras = _palavras.Where(p => dicionario.Palavras.Contains(p));
|
||
</span></span><span style="display:flex;"><span> <span style="color:#66d9ef">return</span> <span style="color:#66d9ef">this</span>;
|
||
</span></span><span style="display:flex;"><span> }
|
||
</span></span><span style="display:flex;"><span>}
|
||
</span></span></code></pre></div><p>That was the result, my wife was thankful because she had a limited set of words and I expanded into more possibilities to enrich the alphabetization process. All those words are in the portuguese dictionary:</p>
|
||
<pre tabindex="0"><code>babi
|
||
badi
|
||
bagi
|
||
bacu
|
||
babu
|
||
baco
|
||
bada
|
||
bafo
|
||
bame
|
||
bago
|
||
bagu
|
||
baju
|
||
bage
|
||
bapo
|
||
bari
|
||
baro
|
||
baru
|
||
base
|
||
baxi
|
||
bazo
|
||
beco
|
||
befe
|
||
bege
|
||
beje
|
||
beji
|
||
belo
|
||
beno
|
||
beri
|
||
bero
|
||
beru
|
||
beta
|
||
beti
|
||
betu
|
||
bevo
|
||
bibe
|
||
bibi
|
||
bibo
|
||
bicu
|
||
bida
|
||
bidu
|
||
bigu
|
||
biju
|
||
bifu
|
||
bile
|
||
biga
|
||
bime
|
||
bimo
|
||
bira
|
||
biri
|
||
biru
|
||
bita
|
||
biva
|
||
bixa
|
||
biza
|
||
bizu
|
||
bobo
|
||
boca
|
||
bode
|
||
bodi
|
||
bojo
|
||
boli
|
||
bori
|
||
boro
|
||
bosa
|
||
bosi
|
||
bota
|
||
boxe
|
||
bubi
|
||
bubo
|
||
bubu
|
||
buco
|
||
bucu
|
||
buda
|
||
budu
|
||
buja
|
||
buji
|
||
bule
|
||
bume
|
||
buna
|
||
buri
|
||
buro
|
||
buru
|
||
buso
|
||
buto
|
||
buva
|
||
buxo
|
||
buzi
|
||
buzo
|
||
buzu
|
||
cabo
|
||
cabu
|
||
caco
|
||
cacu
|
||
cade
|
||
cado
|
||
cafe
|
||
caju
|
||
cali
|
||
calu
|
||
cama
|
||
cani
|
||
cano
|
||
capa
|
||
cari
|
||
caro
|
||
caru
|
||
casu
|
||
cati
|
||
cavi
|
||
cavu
|
||
caxe
|
||
caxo
|
||
cebo
|
||
ceca
|
||
ceco
|
||
cefo
|
||
celo
|
||
cene
|
||
ceno
|
||
cepo
|
||
cero
|
||
ceru
|
||
ceso
|
||
ceto
|
||
cica
|
||
cide
|
||
cifo
|
||
cilo
|
||
cimo
|
||
cine
|
||
cipo
|
||
cira
|
||
cobo
|
||
cobu
|
||
coco
|
||
cofo
|
||
coli
|
||
cone
|
||
cono
|
||
copo
|
||
copu
|
||
cori
|
||
coro
|
||
coru
|
||
cota
|
||
covo
|
||
coxe
|
||
coxo
|
||
cubi
|
||
cubo
|
||
cubu
|
||
cuci
|
||
cuco
|
||
cucu
|
||
cude
|
||
cudo
|
||
cudu
|
||
cuje
|
||
cujo
|
||
cule
|
||
culi
|
||
cume
|
||
cumi
|
||
cuno
|
||
cupa
|
||
cupi
|
||
cupu
|
||
cura
|
||
curi
|
||
cute
|
||
cuva
|
||
cuvu
|
||
cuxu
|
||
dabi
|
||
dabo
|
||
dabu
|
||
dace
|
||
daco
|
||
daga
|
||
dala
|
||
dali
|
||
damo
|
||
dano
|
||
data
|
||
deca
|
||
deci
|
||
dele
|
||
demo
|
||
dero
|
||
dibo
|
||
dica
|
||
didi
|
||
difa
|
||
dilo
|
||
dima
|
||
dine
|
||
dino
|
||
dipa
|
||
diro
|
||
disa
|
||
dito
|
||
divo
|
||
dixe
|
||
doca
|
||
doce
|
||
dodo
|
||
doge
|
||
dojo
|
||
doli
|
||
dolo
|
||
dono
|
||
dore
|
||
dote
|
||
doxa
|
||
doze
|
||
dubu
|
||
duco
|
||
duda
|
||
duga
|
||
dubo
|
||
dule
|
||
dumo
|
||
duna
|
||
duro
|
||
duru
|
||
face
|
||
faco
|
||
fago
|
||
fajo
|
||
fari
|
||
duto
|
||
duzu
|
||
fato
|
||
favo
|
||
febo
|
||
feno
|
||
faro
|
||
fase
|
||
fate
|
||
fido
|
||
fife
|
||
fifi
|
||
figo
|
||
fila
|
||
fini
|
||
fino
|
||
fisa
|
||
faba
|
||
falo
|
||
fama
|
||
fepe
|
||
fero
|
||
feto
|
||
fibo
|
||
fise
|
||
fito
|
||
fixo
|
||
fogo
|
||
fojo
|
||
fole
|
||
fome
|
||
fomo
|
||
fone
|
||
fono
|
||
fopa
|
||
foro
|
||
foto
|
||
foxo
|
||
fuba
|
||
fuca
|
||
fulo
|
||
fumo
|
||
furo
|
||
fute
|
||
fuco
|
||
fufa
|
||
fufu
|
||
fuje
|
||
gado
|
||
gage
|
||
fuzo
|
||
gaci
|
||
gade
|
||
gadi
|
||
gana
|
||
gape
|
||
gare
|
||
gari
|
||
gago
|
||
gajo
|
||
gali
|
||
galo
|
||
gelo
|
||
gene
|
||
geno
|
||
geso
|
||
gaze
|
||
garo
|
||
garu
|
||
gate
|
||
gato
|
||
gazo
|
||
gebu
|
||
geco
|
||
gigo
|
||
gila
|
||
gimo
|
||
giro
|
||
geta
|
||
gibi
|
||
gibo
|
||
gido
|
||
gita
|
||
gobo
|
||
gofo
|
||
gogo
|
||
gojo
|
||
gole
|
||
gode
|
||
godo
|
||
goli
|
||
golo
|
||
gomo
|
||
goni
|
||
gonu
|
||
gote
|
||
goto
|
||
gova
|
||
goxo
|
||
gozo
|
||
gude
|
||
gudu
|
||
gugu
|
||
gula
|
||
gume
|
||
gune
|
||
guri
|
||
guro
|
||
guru
|
||
guso
|
||
guto
|
||
guvo
|
||
guxe
|
||
guzo
|
||
habe
|
||
haco
|
||
hacu
|
||
haje
|
||
haji
|
||
hala
|
||
halo
|
||
hari
|
||
hedu
|
||
hela
|
||
heme
|
||
hemi
|
||
hena
|
||
hepa
|
||
here
|
||
hete
|
||
hexa
|
||
heza
|
||
hico
|
||
hifa
|
||
hilo
|
||
hino
|
||
hipo
|
||
hobo
|
||
hoje
|
||
holo
|
||
homo
|
||
hona
|
||
hopi
|
||
hopo
|
||
hora
|
||
hote
|
||
hova
|
||
hoxa
|
||
hubi
|
||
hubo
|
||
hude
|
||
hula
|
||
humo
|
||
huno
|
||
hura
|
||
huri
|
||
husa
|
||
hutu
|
||
jabe
|
||
jabu
|
||
jaci
|
||
jaco
|
||
jacu
|
||
jade
|
||
jaga
|
||
jala
|
||
jami
|
||
jano
|
||
japa
|
||
japi
|
||
japu
|
||
jaro
|
||
jaru
|
||
jati
|
||
jatu
|
||
java
|
||
jeba
|
||
jebu
|
||
jeco
|
||
jeje
|
||
jeju
|
||
jeni
|
||
jero
|
||
jeru
|
||
jesu
|
||
jeta
|
||
jiba
|
||
jibi
|
||
jiga
|
||
jiju
|
||
jile
|
||
jina
|
||
jipe
|
||
jire
|
||
jiso
|
||
jipi
|
||
jiti
|
||
jito
|
||
joco
|
||
jola
|
||
joli
|
||
jomo
|
||
jone
|
||
jono
|
||
jopa
|
||
jote
|
||
juba
|
||
jucu
|
||
judo
|
||
juge
|
||
juju
|
||
jule
|
||
julo
|
||
juma
|
||
juna
|
||
juri
|
||
juro
|
||
juso
|
||
juto
|
||
jutu
|
||
juva
|
||
juru
|
||
kibi
|
||
komi
|
||
labo
|
||
laca
|
||
lado
|
||
ladu
|
||
lage
|
||
lago
|
||
laje
|
||
lala
|
||
lama
|
||
lami
|
||
lari
|
||
laro
|
||
lasi
|
||
lata
|
||
lazo
|
||
leba
|
||
lebu
|
||
leco
|
||
ledo
|
||
lele
|
||
lelo
|
||
leme
|
||
lero
|
||
lesa
|
||
leto
|
||
leve
|
||
libi
|
||
lica
|
||
lice
|
||
lila
|
||
lili
|
||
limo
|
||
lite
|
||
live
|
||
livo
|
||
lobe
|
||
lide
|
||
lino
|
||
lipe
|
||
lipo
|
||
lipu
|
||
liri
|
||
lobo
|
||
loci
|
||
locu
|
||
lodo
|
||
lofo
|
||
logo
|
||
loja
|
||
lolo
|
||
lona
|
||
lope
|
||
lopo
|
||
loro
|
||
liro
|
||
liru
|
||
lise
|
||
liso
|
||
lulo
|
||
lulu
|
||
lume
|
||
luna
|
||
macu
|
||
made
|
||
madi
|
||
mafe
|
||
mafu
|
||
mago
|
||
maja
|
||
maju
|
||
mali
|
||
malu
|
||
manu
|
||
mapa
|
||
mari
|
||
masa
|
||
mati
|
||
mato
|
||
loso
|
||
lote
|
||
loti
|
||
loxa
|
||
luba
|
||
luco
|
||
ludo
|
||
luge
|
||
meso
|
||
meta
|
||
miba
|
||
mibu
|
||
luni
|
||
lupo
|
||
luso
|
||
luto
|
||
luva
|
||
maba
|
||
mabu
|
||
maco
|
||
matu
|
||
mavo
|
||
maxi
|
||
maza
|
||
mebi
|
||
mico
|
||
mida
|
||
miju
|
||
mile
|
||
mimo
|
||
mina
|
||
mini
|
||
miri
|
||
mili
|
||
meco
|
||
medo
|
||
mitu
|
||
miva
|
||
mizo
|
||
modo
|
||
mogo
|
||
mise
|
||
miso
|
||
mite
|
||
mito
|
||
moho
|
||
moje
|
||
mojo
|
||
mega
|
||
mole
|
||
molo
|
||
mome
|
||
momo
|
||
mono
|
||
mosa
|
||
mote
|
||
moti
|
||
moto
|
||
milo
|
||
milu
|
||
mimi
|
||
meji
|
||
meme
|
||
memi
|
||
meni
|
||
meno
|
||
menu
|
||
mero
|
||
meru
|
||
mopi
|
||
mori
|
||
moru
|
||
mube
|
||
mubi
|
||
mubu
|
||
muco
|
||
mufa
|
||
mugo
|
||
muje
|
||
mulo
|
||
mumo
|
||
mumu
|
||
mupa
|
||
muri
|
||
muru
|
||
musa
|
||
muti
|
||
muto
|
||
muxi
|
||
muxo
|
||
nabi
|
||
nabo
|
||
nagi
|
||
naja
|
||
naji
|
||
nale
|
||
nalu
|
||
nama
|
||
nani
|
||
napa
|
||
nara
|
||
naru
|
||
nase
|
||
nato
|
||
nave
|
||
naxa
|
||
naze
|
||
nazi
|
||
nebo
|
||
neca
|
||
naco
|
||
nacu
|
||
nadi
|
||
nafo
|
||
neda
|
||
nefa
|
||
neja
|
||
nele
|
||
nelo
|
||
neno
|
||
nepa
|
||
nero
|
||
neto
|
||
nexo
|
||
nibu
|
||
nife
|
||
nili
|
||
nilo
|
||
nini
|
||
nipo
|
||
nito
|
||
nive
|
||
niza
|
||
nola
|
||
nome
|
||
nomo
|
||
nono
|
||
nope
|
||
nora
|
||
noxa
|
||
nubo
|
||
nuca
|
||
nuce
|
||
nudo
|
||
nufe
|
||
nuga
|
||
nulo
|
||
nume
|
||
numo
|
||
nune
|
||
nuno
|
||
paba
|
||
paco
|
||
pacu
|
||
pado
|
||
padu
|
||
pafo
|
||
pale
|
||
pama
|
||
pami
|
||
pani
|
||
panu
|
||
papu
|
||
paru
|
||
pate
|
||
pati
|
||
pato
|
||
pavo
|
||
paza
|
||
peba
|
||
pebi
|
||
pedo
|
||
pegu
|
||
peji
|
||
pema
|
||
pemi
|
||
pepe
|
||
pepo
|
||
peri
|
||
pero
|
||
peru
|
||
peva
|
||
pexe
|
||
picu
|
||
pida
|
||
pili
|
||
pima
|
||
pipi
|
||
piri
|
||
piti
|
||
pitu
|
||
piva
|
||
pixa
|
||
piza
|
||
pobe
|
||
pofo
|
||
poga
|
||
polo
|
||
poma
|
||
pomo
|
||
pona
|
||
pone
|
||
pope
|
||
poro
|
||
pote
|
||
poti
|
||
poto
|
||
potu
|
||
povo
|
||
poxa
|
||
puco
|
||
pucu
|
||
pudu
|
||
pufe
|
||
pufo
|
||
punu
|
||
raga
|
||
ragu
|
||
rali
|
||
rami
|
||
rana
|
||
rane
|
||
pupu
|
||
puri
|
||
puro
|
||
puti
|
||
rani
|
||
ranu
|
||
puto
|
||
puva
|
||
puvi
|
||
rabi
|
||
rabo
|
||
raca
|
||
rada
|
||
rafi
|
||
rati
|
||
rave
|
||
ravo
|
||
raxa
|
||
rebu
|
||
rede
|
||
reno
|
||
repa
|
||
reso
|
||
rexe
|
||
reye
|
||
ribu
|
||
rico
|
||
rino
|
||
riso
|
||
rito
|
||
robe
|
||
rofo
|
||
roli
|
||
rone
|
||
rono
|
||
roxo
|
||
rubi
|
||
rubo
|
||
rude
|
||
rudo
|
||
rumi
|
||
runo
|
||
rusa
|
||
sace
|
||
saci
|
||
sade
|
||
sadi
|
||
sado
|
||
sadu
|
||
safu
|
||
sava
|
||
saxe
|
||
sage
|
||
sago
|
||
saxo
|
||
sazo
|
||
sagu
|
||
saju
|
||
sazu
|
||
sebe
|
||
sebo
|
||
sege
|
||
salo
|
||
salu
|
||
samo
|
||
sapu
|
||
sari
|
||
saru
|
||
sate
|
||
sati
|
||
sejo
|
||
sema
|
||
semi
|
||
sene
|
||
seno
|
||
sepo
|
||
sera
|
||
sere
|
||
seri
|
||
sibe
|
||
sico
|
||
sicu
|
||
sida
|
||
sidi
|
||
sile
|
||
silo
|
||
sini
|
||
sipe
|
||
sire
|
||
siri
|
||
siro
|
||
site
|
||
sito
|
||
situ
|
||
siva
|
||
soba
|
||
soja
|
||
sope
|
||
sopo
|
||
sore
|
||
sosa
|
||
sovi
|
||
subu
|
||
sufi
|
||
suna
|
||
sune
|
||
supo
|
||
suri
|
||
suro
|
||
suru
|
||
suso
|
||
tabe
|
||
tabi
|
||
tabu
|
||
taci
|
||
tacu
|
||
tali
|
||
tamo
|
||
tani
|
||
tari
|
||
tate
|
||
tato
|
||
tatu
|
||
tava
|
||
teba
|
||
tebi
|
||
teda
|
||
tefe
|
||
tejo
|
||
teju
|
||
tele
|
||
tene
|
||
teno
|
||
tepe
|
||
tera
|
||
tero
|
||
tibi
|
||
tibu
|
||
ticu
|
||
tife
|
||
tifo
|
||
tiga
|
||
tiju
|
||
time
|
||
timo
|
||
tipe
|
||
tipi
|
||
tipo
|
||
tipu
|
||
titi
|
||
tito
|
||
tiza
|
||
tizi
|
||
toba
|
||
toci
|
||
todo
|
||
tofo
|
||
tofu
|
||
tojo
|
||
tolu
|
||
tori
|
||
toru
|
||
tova
|
||
toxi
|
||
tubi
|
||
tuco
|
||
tucu
|
||
tudo
|
||
tuga
|
||
tuju
|
||
tule
|
||
tulo
|
||
turi
|
||
turu
|
||
tutu
|
||
tuvi
|
||
tuxi
|
||
tuza
|
||
vacu
|
||
vapa
|
||
vapi
|
||
vari
|
||
vaso
|
||
vate
|
||
vatu
|
||
vava
|
||
veba
|
||
veri
|
||
vero
|
||
viba
|
||
vico
|
||
vili
|
||
vina
|
||
vini
|
||
vite
|
||
vitu
|
||
vodo
|
||
vodu
|
||
volo
|
||
vuba
|
||
vudu
|
||
vumo
|
||
xicu
|
||
xifo
|
||
vuvu
|
||
xilo
|
||
xaco
|
||
xale
|
||
xama
|
||
xipo
|
||
xara
|
||
xaru
|
||
xate
|
||
xira
|
||
xiri
|
||
xiru
|
||
xixi
|
||
xero
|
||
xeta
|
||
xexo
|
||
xiba
|
||
xico
|
||
xosa
|
||
xoxo
|
||
xoxu
|
||
xuri
|
||
xuru
|
||
xuxo
|
||
yagi
|
||
yewe
|
||
yobi
|
||
zaco
|
||
zaga
|
||
zagu
|
||
zama
|
||
zana
|
||
zape
|
||
zazo
|
||
zebi
|
||
zebo
|
||
zebu
|
||
zeta
|
||
zimo
|
||
zito
|
||
zoga
|
||
zola
|
||
zoli
|
||
zopo
|
||
zote
|
||
zovo
|
||
zulu
|
||
zura
|
||
</code></pre></section>
|
||
|
||
<footer class="mt-12 flex flex-wrap"><a
|
||
class="mb-1.5 rounded-lg bg-black/[3%] px-5 py-1 no-underline hover:bg-black/[6%] ltr:mr-1.5 rtl:ml-1.5 dark:bg-white/[8%] dark:hover:bg-white/[12%]"
|
||
href="https://developerbedoya.net/tags/csharp"
|
||
>csharp</a
|
||
><a
|
||
class="mb-1.5 rounded-lg bg-black/[3%] px-5 py-1 no-underline hover:bg-black/[6%] ltr:mr-1.5 rtl:ml-1.5 dark:bg-white/[8%] dark:hover:bg-white/[12%]"
|
||
href="https://developerbedoya.net/tags/portuguese"
|
||
>portuguese</a
|
||
><a
|
||
class="mb-1.5 rounded-lg bg-black/[3%] px-5 py-1 no-underline hover:bg-black/[6%] ltr:mr-1.5 rtl:ml-1.5 dark:bg-white/[8%] dark:hover:bg-white/[12%]"
|
||
href="https://developerbedoya.net/tags/education"
|
||
>education</a
|
||
></footer><nav
|
||
class="mt-24 flex overflow-hidden rounded-xl bg-black/[3%] text-lg leading-[1.2]! *:flex *:w-1/2 *:items-center *:p-5 *:font-medium *:no-underline dark:bg-white/[8%] [&>*:hover]:bg-black/[2%] dark:[&>*:hover]:bg-white/[3%]"
|
||
><a class="ltr:pr-3 rtl:pl-3" href="https://developerbedoya.net/posts/my-best-friend/"
|
||
><span class="ltr:mr-1.5 rtl:ml-1.5">←</span><span>My Best Friend</span></a
|
||
><a
|
||
class="justify-end pl-3 ltr:ml-auto rtl:mr-auto"
|
||
href="https://developerbedoya.net/posts/markdown-is-life/"
|
||
><span>Markdown Is Life</span><span class="ltr:ml-1.5 rtl:mr-1.5">→</span></a
|
||
></nav><div class="mt-24" id="disqus_thread"></div>
|
||
<script>
|
||
const disqusShortname = 'developerbedoya';
|
||
const script = document.createElement('script');
|
||
script.src = 'https://' + disqusShortname + '.disqus.com/embed.js';
|
||
script.setAttribute('data-timestamp', +new Date());
|
||
document.head.appendChild(script);
|
||
</script></article></main><footer
|
||
class="mx-auto flex h-[4.5rem] max-w-(--w) items-center px-8 text-xs tracking-wider uppercase opacity-60"
|
||
>
|
||
<div class="mr-auto">©2025
|
||
<a class="link" href="https://developerbedoya.net/">Developer Bedoya</a></div>
|
||
<a class="link mx-6" href="https://gohugo.io/" rel="noopener" target="_blank"
|
||
>powered by hugo️️</a
|
||
>️
|
||
<a
|
||
class="link"
|
||
href="https://github.com/nanxiaobei/hugo-paper"
|
||
rel="noopener"
|
||
target="_blank"
|
||
>hugo-paper</a
|
||
>
|
||
</footer>
|
||
</body>
|
||
</html>
|