Keresés

Új hozzászólás Aktív témák

  • Ivy.4.Ever

    őstag

    válasz Ivy.4.Ever #17569 üzenetére

    Rejtélyes, hogy a 14-es test caseben az 1395-ös értékre No-t vár, miközben az Yes lenne mivel 155 db 'i' betűből ki kell jönnie. És az egész test case ezen az egyen bukik, a többi 19029 számra mind jó a válaszom.
    Más kódját bemásolva, ami szinte ugyanaz mint az enyém, viszont arra No-t ad, és közben jó az egész test case.

    Az én kódom:
    public static List<String> weightedUniformStrings(String s, List<Integer> queries){
        HashSet<Integer> weights = new HashSet<>();
        while(!s.equals("")){
           char currChar = s.charAt(0);
           int count = 0;
           for(int i=0; i < s.length(); i++){
               if(currChar == s.charAt(i)){
                   count++;
               }
           }

           while(count > 0){
               int weight = count * ((currChar - 'a')+1);
               weights.add(weight);
               count--;        
           }

           s = s.replaceAll(Character.toString(currChar), "");   
        }

       LinkedList<String> returnArray = new LinkedList<>();
       for(Integer q : queries){
           String answer = weights.contains(q) ? "Yes" : "No";
           returnArray.add(answer);    
       }        
        return returnArray;    
    }

    Más kódja:
    public static List<String> weightedUniformStrings(String s, List<Integer> queries){
        HashSet<Integer> weights = new HashSet<>();

        int weight = 0;
       char prev = ' '; // so it doesn't match 1st character
       for (int i = 0; i < s.length(); i++){
           char curr = s.charAt(i);
           if (curr != prev){
               weight = 0;
           }

           weight +=  curr - 'a' + 1;
           weights.add(weight);
           prev = curr;
       }

       ArrayList<String> returnArray = new ArrayList<>();
       for(Integer q : queries){
           String answer = weights.contains(q) ? "Yes" : "No";
           returnArray.add(answer);
       }
       return returnArray;
    }

    Utóbbi kódra custom inputra ha beadom ezt:
    iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiifiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiv
    2
    241358
    1395

    Akkor 1395 a debug outputon No lesz.
    Viszont ha kitörlöm az 1 szem 'f' betűt, meg már Yes
    Ez nekem már az X-akták kategória :)

  • dabadab

    titán

    válasz Ivy.4.Ever #17569 üzenetére

    a második sorban pl. olyat vár el Yes-re expected outputon, hogy 1,796,801.

    Nem, az az első sor, amire nemet vár :)
    Amit ott látsz, az úgy néz ki, hogy a string, a queryk száma (ami a 14-esben 19030) és utána a queryk, amikből ténylegesen a második a 241358 (ami 9283 db z-ből összejön, szóval annak tényleg igaznak kell lennie)

Új hozzászólás Aktív témák