Diskuze: Algoritmus změna jednoho slova za druhé
Zobrazeno 6 zpráv z 6.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |


To co uvádíš je spíše takové "hraní si" s algoritmizací. Smyslem toho celého je naučit se práci se znaky a řetězci než to jak by měl algoritmus skutečně fungovat. Je třeba uvědomit si, co vše záměna slova obnáší. Operace přidej, odeber, nahraď totiž nejsou jediné. Při tom jak to popisuješ pracuješ také s operace porovnání. Porovnání plus operace dohromady je pomalé.
Ve tvém případě potřebuješ znát tři stavy týkající se délky řetězce.
V prvním případě nahrazuješ a přidáváš
V druhém případě nahrazuješ a odebíráš
Ve třetím případě pouze nahrazuješ
Všimni si že porovnávání není třeba.
Budu-li brát tvůj případ, kde slovo A je "ast" a slovo B je "test", tak
operace budou následovné:
nahraď, nahraď, nahraď, přidej. Tedy 4 operace.
Počet operací bude roven délce delšího řetězce.
Skutečný algoritmus funguje tak, že najdeš pozici prvního slova a zapíšeš přímo na ni druhé slovo bez jakéhokoli porovnávání.
Ahoj,
zkus se podívat po internetu na Levenshteinovu vzdálenost. Myslím, že je to
to, co hledáš. Určitě najdeš i nějaké příklady pro různé jazyky, ale
to si samozřejmě můžeš vyzkoušet implementovat do Pythonu sám.
Mozna te zajima pocet rozdilnych znaku, pokud od poctu stejnych, ktere jdou po sobe, ne?
A = "ast" a slovo B = "test"
stejne AB = st
rozdilene A = a, B = te
Takze 3 operace?
Teoreticky by melo stacit pismena seradit a pak pismena vyskrtavat. Ale pro tvuj
pripad to mozna nebude pouzitelne, protoze potrebujes konkretni poradi
pismen.
Jinymi slovy, by to mel byt algoritmus pro verzovani textu. Ve verzi A provedes zmeny, vyznac zmeny. Umi to treba TotalCommander, porovnat 2 soubory a vyznacit rozdilne radky.
Jo, a jeste to samozrejme umi asi tisic redakcnich systemu. Treba v pythonu je napsany CMS Plone. Pri uprave nebo zobrazeni stranky se to jmenuje Historie. Odkaz je takovy sedy, nenapadny.
Tu sa uplatni vyhľadávanie podreťazcov
Napríklad v tvojom príklade je spoločným podreťazcom "st"
A program sa bude snažiť tento podreťazec rozšíriť aby nakoniec bol
podreťazec rovnaky ak to čo potrebujeme
Ďalším príkladom je "ostrov" a "saturn"
Spoločné časti sú 's' ,'t' a 'r'
Program vyhodnotí , že odstránením 2 písmen získame podreťazec "str"
A potom už iba doplní alebo vymení podľa potreby
Išlo by to takto
Najprv sme chceli získať najdlhší podreťazec z toho čo máme a potom sme už iba ten podreťazec predlžovali aby sme dostali výsledok
Nahradenie je vždy výhodnejšie ako odobratie a pridanie
Zobrazeno 6 zpráv z 6.