Codewars

Redmond

Elita
Poruka
17.370
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?
 
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
 
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:
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 ;)
 
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"
 
занимљив сајт, добро ме подсетисте да постоји. Ево сад радим на овом (лакшем) проблемчићу, ал ме хебе синтаксичка грешка.
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.


Сајт делује забавно, али само ако имате вишак времена што није мој случај па можда боље да се не залуђујем више.
 
Ја рецимо немам слободне викенде, а кад имам слободно време желим да учим конкретне скилове, а не да се зезам са задацима од којих нема (материјалне) користи. Али свако има своју причу...
 
evo pocinjemo danas sa ratovima. Radicu po jedan zadatak dnevno. Koliko sam video problemi su teski cak i za mene, tj stvarno su teski. Moram za neke zadatke da razmisljam i po 10 minuta.
 
You probably know the "like" system from Facebook and other pages. People can "like" blog posts, pictures or other items. We want to create the text that should be displayed next to such an item.

Implement a function likes :: [String] -> String, which must take in input array, containing the names of people who like an item. It must return the display text as shown in the examples:

likes {} // must be "no one likes this"
likes {"Peter"} // must be "Peter likes this"
likes {"Jacob", "Alex"} // must be "Jacob and Alex like this"
likes {"Max", "John", "Mark"} // must be "Max, John and Mark like this"
likes {"Alex", "Jacob", "Mark", "Max"} // must be "Alex, Jacob and 2 others like this
 
Pa naravno da je lagan. Nisam ni napisao da trebam pomoc. Ako ja trebam pomoc to niko na svetu ne moze da resi. ovo je prvi zadatak koji sam dobio. Kod programiranja mi je mana sto nikad nisam ucio oop. i nekako mi je bas stran kao pojam. Navikao sam da pisem kod uvek u jednoj funkciji bez podele. I onda kad treba da razmisljam kako da podelim problem, a to je neophodno kad se radi kod projekata onda ne znam. Programiranje zahteva vezbu i tehniku.
 
Given a string of words, you need to find the highest scoring word.

Each letter of a word scores points according to its position in the alphabet: a = 1, b = 2, c = 3 etc.

You need to return the highest scoring word as a string.

If two words score the same, return the word that appears earliest in the original string.

All letters will be lowercase and all inputs will be valid.

public class Kata {

public static String high(String s) {

String k="";
s=s+" ";
int max=0;
String k1="";
while(s.indexOf(' ')>=0)
{ int j=0;
int suma=0;
k=s.substring(0, s.indexOf(' '));

while(j<k.length())
{
suma=suma+k.charAt(j)-'a'+1;
j++;

}
if(suma>max)
{
max=suma;
k1=k;


}
s=s.substring(s.indexOf(' ')+1);


}

return k1;
}


takodje sam uradio preko paterna ali nisam siguran da mogu da koristim taj package .
 
public class Kata { public static String high(String s) { return Arrays.stream(s.split(" ")) .max(Comparator.comparingInt( a -> a.chars().map(i -> i - 96).sum() )).get(); } }
 

Има на форуму опција убаците код. Биће много прегледније. Знам да је за тебе ово прост код, ал опет.
 
Kod:
~/examples/haskell >>> cat score.hs                                                                                                                                                                                        
import Data.Char(ord)
score l = foldl (\p@(maxim,_) i->let maxim' = sum $ map ord i
                   in if maxim < maxim'
                      then (maxim',i)
                      else p) (0,"") $ words l
main = do
    let words = "abc def"
    print $ score words
~/examples/haskell >>> ghc -O2 score.hs -threaded -rtsopts -dynamic                                                                                                                                                       
[1 of 1] Compiling Main             ( score.hs, score.o )
Linking score ...
~/examples/haskell >>> ./score                                                                                                                                                                                            
(303,"def")
 
poceo sam da radim jedan zadatak ali zahteva teoriju kompajlera. Sad sigurno moze da traje mesecima dok to ne naucim. Probacu jos desetak dana da ga resim. U svakom slucaju sajt je odlican. Moracu da naucim binarna stabla i dosta razlicitih algoritama.
 

Back
Top