Quantcast

Codewars

Redmond

Domaćin
Poruka
4.736
Da li neko posecuje ovaj interesantan sajt? Zadaju vam programerske probleme i kako ih resavate tako dobijate honor poene i rang vam raste po sistemu azijskih borilackih vestina (najpre od 8 kyu do 1 kyu, pa od 1 dan do 4 dan). Stigao sam do 5 kyu ranga i uglavnom mi zadaju 4 kyu zadatke koji su znatno tezi u odnosu na one sa kojima sam se susreo do sad, jedva da sam jedan uspeo da resim sam. Kakva su druga iskustva?
 

hirajgoagain

Zaslužan član
Poruka
121.670
otvarala sam hacker rank i tamo nisam rešila jedan laki
nekad sam vežbala na exercism.io ali tu nema pojaseva i slično, samo sreća kad ti prođe zadatak a još si uspeo i da instaliraš sve što treba
čemu to
 

Redmond

Domaćin
Poruka
4.736
Evo primera jednog 4 kyu zadatka cije resenje nisam uspeo da razumem i koji me bas frustrira.

In this kata you have to create all permutations of an input string and remove duplicates, if present. This means, you have to shuffle all letters from the input in all possible orders.

Examples:

permutations('a'); # ['a']
permutations('ab'); # ['ab', 'ba']
permutations('aabb'); # ['aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa']

The order of the permutations doesn't matter.

https://www.codewars.com/kata/permutations/python

mozete da birate gore u kom cete jeziku da resavate zadatak ne mora samo python

(uzgred koriscenje, itertools permutations ovde nije dozvoljeno, kod primera sa velikim brojevima javlja se execution timeout, zahtevaju da probadjete elegantnije resenje)
 
Poslednja izmena:

bmaxa

Aktivan član
Poruka
1.519
Evo primera jednog 4 kyu zadatka cije resenje nisam uspeo da razumem i koji me bas frustrira.

In this kata you have to create all permutations of an input string and remove duplicates, if present. This means, you have to shuffle all letters from the input in all possible orders.

Examples:

permutations('a'); # ['a']
permutations('ab'); # ['ab', 'ba']
permutations('aabb'); # ['aabb', 'abab', 'abba', 'baab', 'baba', 'bbaa']

The order of the permutations doesn't matter.

https://www.codewars.com/kata/permutations/python

mozete da birate gore u kom cete jeziku da resavate zadatak ne mora samo python

(uzgred koriscenje, itertools permutations ovde nije dozvoljeno, kod primera sa velikim brojevima javlja se execution timeout, zahtevaju da probadjete elegantnije resenje)
Stvar je da koriscenje biblioteke, ubija svaki smisao zadatka. Znaci treba izvrteti petlje, uraditi bez pomoci biblioteke. Ne pada mi odmah napamet
resenje zadatka, uparlozio sam se ;)
 

bmaxa

Aktivan član
Poruka
1.519
Inace, evo resenja gde se trazi sledeca leksikografska permutacija, to je ono sto je po meni najjednostavnije (prepisao sam neta
iz C++):
Kod:
~/examples/rust >>> cat permutations.rs                                                                                                                                                                                      
fn main()->Result<(),String> {
    // povucemo args pa ih pretvorimo iz iteratora u vec stringova
    let mut args:Vec<String> = std::env::args().collect();
    // mora zato sto rust ne dozvojava dve reference a da je jedna mutabilna
    let len = args[1].len();
    unsafe {
        // ditto
        let mut buf = args[1].as_bytes_mut();
        // gimnastika da se bytes prikaze kao String
        println!("{:?}",buf.iter().map(|c| *c as char).collect::<String>());

        while (next_permutation(buf,len)){
            println!("{:?}",buf.iter().map(|c| *c as char).collect::<String>());
        }
    }
    Ok(())
}

fn next_permutation(s:&mut [u8], n:usize)->bool {
    let mut i = n-1;
    // dva susedna
    while(s[i-1] >= s[i]) {
        i -= 1;
        if (i == 0) {
            return false;
        }
    }
    let mut j = n-1;
    // trazi
    while (j>i && s[j]<=s[i-1] ) {
        j -= 1;
    }
    // zameni ta dva
    s.swap(i-1,j);
    // obrni od tog pa do kraja
    s[i..].reverse();
    true
}
~/examples/rust >>> ./permutations aabb                                                                                                                                                                                       
"aabb"
"abab"
"abba"
"baab"
"baba"
"bbaa"
 

Truman

Elita
Poruka
15.431
занимљив сајт, добро ме подсетисте да постоји. Ево сад радим на овом (лакшем) проблемчићу, ал ме хебе синтаксичка грешка.
A Narcissistic Number is a number which is the sum of its own digits, each raised to the power of the number of digits in a given base. In this Kata, we will restrict ourselves to decimal (base 10).
For example, take 153 (3 digits):
1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
Your code must return true or false depending upon whether the given number is a Narcissistic number in base 10.


Сајт делује забавно, али само ако имате вишак времена што није мој случај па можда боље да се не залуђујем више.
 

Truman

Elita
Poruka
15.431
Ја рецимо немам слободне викенде, а кад имам слободно време желим да учим конкретне скилове, а не да се зезам са задацима од којих нема (материјалне) користи. Али свако има своју причу...
 
Top