해커랭크 #13 | 부분 문자열 비교 | 🇧🇷
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는 다음과 같이 구성됩니다.
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. int
que começa em 0 while
que some a variável i
com k
(입력 번호 없음) 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. k + i
. 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. 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를 사용하지 않고 공개적으로 실행해야 합니다. 전체 시리즈 액세스:
Reference
이 문제에 관하여(해커랭크 #13 | 부분 문자열 비교 | 🇧🇷), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/beatrizmaciel/hackerrank-13-substring-comparisons-57ha텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)