Gå til innhold

rockPaperScissors()

Medlemmer
  • Innlegg

    1 150
  • Ble med

  • Besøkte siden sist

Innlegg skrevet av rockPaperScissors()

  1. Jepp, jeg hopper over alle tall som ikke skal skrives. Og gjør det på en veldig prosedyreorientert måte som er passende for oversetting til delphi.

    Apropos prosedyrelignende løsning.

     

    <?php
    
    $input1 = "0,2,4,5,6,7,8,9,10,15,16,17,18,19,20,25,26,30";
    $input2 = "0,3,4,5,6,7,8,9,10, 15,16,17,18,19,20";
    
    function groupBySeq(array $input) {
      $data = $input;
      $result = [];
    
      // Group each item together with previeous. Result => [[0,0], [0,2], ..]
      array_unshift($data, 0);
      $gwprev = [];
      for($i=1, $l = count($data); $i < $l; $i++) {
        $gwprev[] = [$data[$i-1], $data[$i]];
      }
    
      // Group each sequences. Result => [[0],[2,3,4, ..]]
      $tmp = [];
      foreach($gwprev as $value) {
        // Slice group before this.
        if (($value[0]+1) < $value[1]) {
          $result[] = $tmp;
          $tmp = [];
        }
        $tmp[] = $value[1];
      }
      // Add the remaining from $tmp.
      if (!!count($tmp)) {
        $result[] = $tmp;
      }
    
      return $result;
    }
    
    function messWithStrings($input) {
      $result = [];
      $data = preg_split('/\D+/', $input);
      $grouped = groupBySeq($data);
      foreach($grouped as $g) {
        if (count($g) > 1) {
          $result[] = sprintf('%s..%s', reset($g), end($g));
        } else {
          $result[] = $g[0];
        }
      }
      return join(',', $result);
    }
    
    var_dump(messWithStrings($input1)); // string(26) "0,2,4..10,15..20,25..26,30"
    var_dump(messWithStrings($input2)); // string(14) "0,3..10,15..20"
    
  2. Vel, nå har jeg gjort løsningen to ganger med samme framgangsmåte. Finne en måte å gruppere tallrekken etter sekvens. [1,2,3,10,11,12] => [[1,2,3], [10,11,12]]. Resten er bare detaljer. Såvidt jeg klarer å lese så ser det ut til at snippsnapp gjør det samme. Jeg er usikker på syntaksten med python, men dog. Lync ser ut til å gjøre noe lignende? Har virkelig ingen anelse om haskell, men det ser ut som ett lignende mønster om jeg kniper igjen øynene, snurrer stolen to ganger, og myser en stund på koden. Det ser ut som at Emancipate lager en annen datastruktur, bare tar vare på ende-numrene i hver sekvens.

  3. En html/ecmascript løsning fungerer også fint.

     

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
    
    <html>
      <head>
        <script src="https://raw.githubusercontent.com/lodash/lodash/3.10.1/lodash.min.js" type="text/javascript">
        </script>
      </head>
    
      <body>
        <script type="text/javascript">
    
          window.onload = function() {
            var input1 = "0,2,4,5,6,7,8,9,10,15,16,17,18,19,20,25,26,30";
            var input2 = "0,3,4,5,6,7,8,9,10, 15,16,17,18,19,20";
    
            var convert = function(input) {
              var c = 0;
              return _.chain(input).words(/\d+/g)
                .groupBy(function(el, i, arr) { return i ? c+= (1 !== el - arr[i-1]) : 0; })
                .values()
                .map(function(s) {
                  if (s.length === 1) { return _.first(s); }
                  return _.first(s) + '..' + _.last(s); })
                .value()
                .join(',');
            };
    
            console.log(convert(input1)); // 0,2,4..10,15..20,25..26,30
            console.log(convert(input2)); // 0,3..10,15..20
          };
    
        </script>
      </body>
    </html>
    
  4. edit: wow, folk skriver uironisk ruby. kk

    Vel, det visste du jo fra før.

     

    input = "0,2,4,5,6,7,8,9,10,15,16,17,18,19,20,25,26,30"
    #input = "0,3,4,5,6,7,8,9,10, 15,16,17,18,19,20"
    
    result = input
    .split(',')
    .map{|i| i.to_i}
    .unshift(0)
    .each_cons(2)
    .slice_before{|m, n| m + 1 < n}
    .map{|a| a.map(&:last)}
    .map{|slice|
      if slice.last == slice.first
        slice.first.to_s
      else
        "%i..%i" % [slice.first, slice.last]
      end
    }
    
    p input
    p result.join(',')
    
    # => "0,2,4,5,6,7,8,9,10,15,16,17,18,19,20,25,26,30"
    # => "0,2,4..10,15..20,25..26,30"
    

    Kan ikke ta credit for denne, bare googlet eksempel på å splitte opp array etter sekvenser og tok utgangspunkt i det. Ble jo mer ryddig enn mitt forrige forsøk da.

  5. Selv om jeg foretrekker  delphi ( pascal) så har ejg en utfordring til dere

     

    problemet er at jeg har en teksstreng med masse tallverdier i,de er adskilt med komma

    tallverdiene forløper i stigende orden  fra 0 til 504, men de kommer ikke nødvendigvis etter hverandre ( d.v.s at noen verdier mangler hvis man tenker på at teksstrengen inneholder alle verdier mellom 0 og 504.

     

    utfordringen blir da korte ned innholdet slik at det f,eks står 0,3..10,15..20 o.s.v i stedet for 0,3,4,5,6,7,8,9,10, 15,16,17,18,19,20 o.s.v

    input = "0,3,4,5,6,7,8,9,10, 15,16,17,18,19,20"
    res_a1 = []
    data = input.split(',').map{|i| i.to_i}
    data.each_with_index do |x, i|
      if i == 0 || i == data.length - 1
        res_a1 << x.to_s
      elsif (data[i]-1 == data[i-1]) ^ (data[i]+1 == data[i+1]) || !(data[i]-1 == data[i-1]) && !(data[i]+1 == data[i+1])
        res_a1 << x.to_s
      elsif !res_a1.empty? && !(res_a1.last =~ /\.\./)
        res_a1 << '..'
      end
    end
    res_a2 = []
    res_a1.each_with_index do |x, i|
      not_last_item_and_x_is_num = i != res_a1.length-1 && x =~ /\d+/
      if not_last_item_and_x_is_num && res_a2.last.to_s =~ /\d+/
        res_a2 << ',' << x
      elsif not_last_item_and_x_is_num && res_a2.last.to_s =~ /\.\./
        res_a2 << x << ','
      else
        res_a2 << x
      end
    end
    p "Input #{input}" # => "Input 0,3,4,5,6,7,8,9,10, 15,16,17,18,19,20"
    p "Result loop #1 #{res_a1.join}" # => "Result loop #1 03..1015..20"
    p "Result loop #2 #{res_a2.join}" # => "Result loop #2 0,3..10,15..20"
    
    You welcome.
  6. Tror ikke jeg hadde giddet å bruke energi på å søke mens jeg enda var student og hadde lang tid igjen.

    Man får aldri en god søknad uten å legge ned mye arbeid hver søknad og ikke minst skrive mange søknader. Det er bedre å starte tidlig selv om man ikke er ferdig utdannet ennå, tenker jeg da.

     

    Men apropo, ett tips er å begynne å kode på fritiden, og publisere det på github eller lignende. Det er lurt å ha med på søknaden. Visst du i tillegg engasjerer deg i ett åpenkildekodeprosjekt, så enda bedre.

  7. Om du har mulighet, så er y-vei (ev. 3-termin) + bachelor over 3 år en ganske god løsning i forhold til tid, karrieremuligheter og lånekasse. Men det er en omstilling å gå fra fast lønn til tunge skoledager og stipend, så det viktigste er egentlig å finne motivasjonen og visualisere hva man vil oppnå.

  8. Innbiller meg at det hjelper å henge opp treningsklærne slik at de tørker før de forsvinner ned i skittentøyskurven. Fuktige klær som ligger i skittentøyskurven blir lett sure.

     

    Vasker også hvite og mørke klær hver for seg, med korrekt vaskepulver. Synes dette hjelper for å holde missfarging borte fra de hvite treningsklærne.

  9. Det er sjeldent at folk ikke har "hode til programmering". Det er bedre å si at ikke alle er komfortable med å bruke timevis på å løse ett programmeringsproblem, når man må hente ut en konsentrasjon som kan minne om asberger for å lykkes. Men det vil ikke bli en motsetning mot å fortsette en karriere innen drift og nettverk selv om man tar noen studiepoeng innen programmering. Det er mange som tar en generell informatikk-grad og jobber med andre oppgaver enn programmering etterpå. :)

  10. Jeg har aldri jobbet på en plass hvor utviklerne har hatt adskilte kontorer, jeg tror jeg hadde valgt det om jeg kunne velge. Men det fungerer bedre på noen arbeidssteder enn andre, spesielt der arbeidsgiver gjør litt ekstra for at det skal fungere.

     

    Noen tegn på at det fungerer der du skal søke, etter min erfaring:

    • Tilgang på arbeidsrom eller stillerom. Møterom teller ikke fordi de er ofte reserverte.
    • Arbeidsområdet er plassert adskilt fra kundeområde og mottak. Hater det når kunder løper rundt med mobiltelefoner og har workshops rett i nærheten.
    • Ingen forskjellsbehandling, også sjefer og seniorer sitter i åpent landskap og føler med deg om støynivået blir ett problem.
    • Det hjelper veldig om arbeidsgiver dekker hodetelefoner med støydemping.
    • Størrelsen på det åpne landskapet du skal jobbe i har mye å si, og hvem du skal sitte sammen med. Det er noen naturlige fordeler ved å sitte på samme sted som resten av teamet.

    Om det blir ett problem, så kan det veie opp om arbeidsgiver tillater hjemmekontor.

  11. Slettet-SuoV8Lu8sy skrev (På 17.9.2015 den 22.02):

    Stillingstittel : Applikasjonsutvikler

    Erfaring: 8 år

    Arbeidsoppgaver : utvikling web frontend og backend , Java , php , mysql , Lotus, JavaScript diverse rammeverk og css .mye kundekontakt. Pluss gjennomgang av server logger etc.

    Utdanning : Dobbel bachelor BIT og BBA

    Alder : 36

    Lønn : 455 000,-

    Arbeidssted : utenfor Stavanger

    Syntes lønnen er så dårlig at jeg vurderer andre muligheter.

     

    Får du ikke bedre vilkår der du er? Arbeidsgiveren din burde kunne tilby deg minst 50k ekstra uten betenkningstid.

  12.  

    Quantum, som noen av oss har fortalt er Mac ikke et trygt valg hvis du skal kjøre linux.

     

    Jeg ser bare tyting om KDevelop og GNU toolchain som ikke er særlig relevant for Java, samt noen ubegrunnede påstander om at Mac ikke egner seg for linux. Det må gjerne utdypes...

     

    Sånn utenom hipsterfaktoren og at Apple ikke gjør nok for å forbedre arbeidsforholdene i fabrikkene sine, så bruker Apple helst Broadcom wifi chipset som nevnt tidligere. Jeg har erfart at Apple sin tastaturlayout er knotete å få til korrekt med Norsk oppsett (€ tegn anyone?), vet ikke det ikke stemmer i like store grad i dag men. Apple har sin egen EFI implementasjon. Apple har naturligvis også begrenset utvalg av modeller. Jeg foretrekker f.eks. 14 tommer med 1080p til Linux.

     

     

     

    • Apple's EFI implementation is neither a EFI 1.x version nor UEFI 2.x version but mixes up both. This kind of firmware does not fall under any one (U)EFI specification and therefore is not a standard UEFI firmware. Unless stated explicitly, these instructions are general and some of them may not work or may be different in Apple Macs.
    • Liker 1
  13.  

    Økt produktivitet i å gjøre Apple ting, ja. Men ikke i å kjøre Linux på en PC.

     

    Du fåkke gjort mye Apple-ting om du kjører Linux på en Apple-PC, og det er vel dét som er pointet her? 

     

    TS ønsker å kode Java og det går fisefint på både Linux og OS X. Mac er fin HW for Linux.

     

    How hard can it be ?

     

     

    TS er ikke ute etter Mac, men enkelte her synes Mac OS X er en-til-en erstatning for å kjøre Linux så da tar jo alle som er uenige feil.

×
×
  • Opprett ny...