해커랭크 #13 | 부분 문자열 비교 | 🇧🇷

4907 단어 comparetojavastring
Esse problema pede dois 입력: uma string e um int . Essa string terá seus caracteres separados do tamanho do int que receber.

예시 input:

estratosfera
2


Os caracteres serão divididos pelo número de entrada (no caso acima, 2):es tr at os fe ra
A partir desse input , e sabendo que devemos dividir os caracteres de acordo com o número de entrada, usaremos o .compareTo() paraorganizar as silabas em ordem alfanumérica.
O 출력 개발 서버 조직도 em dois resultados:

conjunto de caracteres de menor valor
conjunto de caracteres de maior valor


Isso Significa que Primeiro receberemos a divisão que começa com aprimeira letra possível do alfabeto (e, por isso, com o menor valor) e depois receberemos com a última letra possível do alfabeto. A palavra estratosfera seria Organizada, pelo método .compareTo() , da seguinte 형식:
at es fe os ra tr
Mas, como queremos apenar o conjunto de caracteres de menor e de maior valor, o output será:

at    //.. conjunto de caracteres de menor valor
tr    //.. conjunto de caracteres de maior valor


=========================

O codigo começa assim:

import java.util.Scanner;

public class Solution {

    public static String getSmallestAndLargest(String s, int k) {
        String smallest = "";
        String largest = "";

        // Complete the function
        // 'smallest' must be the lexicographically smallest substring of length 'k'
        // 'largest' must be the lexicographically largest substring of length 'k'

        return smallest + "\n" + largest;
    }


    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        String s = scan.next();
        int k = scan.nextInt();
        scan.close();

        System.out.println(getSmallestAndLargest(s, k));
    }
}


==========

O Passo는 다음과 같이 구성됩니다.


  • Declarar que as variáveis ​​smallest e largest começam em 0 e tem o tamanho de caracteres declarados pelo input k . Essa declaração é só para começar, porque será substituída posteriormente. duas são iguais로서의 Por isso.
  • Declarar um int que começa em 0
  • Fazer um while que some a variável i com k (입력 번호 없음)
  • Enquanto essa soma for menor ou do mesmo tamanho da string , fazer uma substring que comece em i (a partir de 0) e termine no.7n Se for menor do que 0, significa que o conjunto de caracteres é menor alfanumericamente.
  • se o conjunto de caracteres for menor alfanumericamente, isso significa que vamos substituir o valor de k + i .
  • Se o conjunto de caracteres não for menor (e, portanto, não retornar um número negativo), vai para o segundo smallest . Se, na comparação, o conjunto de caracteres for maior do que o valor inicial declarado no if , este conjunto substitui o valor anterior.
  • Por fim, somamos mais uma posição largest para dar cabo à iteração e ir comparando todos os conjuntos de caracteres até que termine as possibilidades de acordo 791405 14140 5 14141 41 0 0 0 7 41 0 0 0 0 4 5 만 41 로 코르도 com에서 caracteres até que termine

  • ==========

    솔루상




            String smallest = s.substring(0,k);
            String largest = s.substring(0,k);
            int i = 0;
    
            while (i+k <= s.length()) {
                if(s.substring(i,i+k).compareTo(smallest) < 0 ) {
                    smallest = s.substring(i,i+k);
                } else if (s.substring(i,i+k).compareTo(largest) > 0) {
                    largest = s.substring(i,i+k);
                }
                i++;
            }
    


    ==========

    참조



  • : dev.to/beatrizmaciel

  • =============

    자바에서 HackerRank를 사용하지 않고 공개적으로 실행해야 합니다. 전체 시리즈 액세스:







  • HackerRank #13 | 부분 문자열 비교















  • 좋은 웹페이지 즐겨찾기