일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- HTML
- Spring Security
- fibonacci
- 알고리즘
- 문자열뒤집기
- Spring Data JDBC
- 깃허브
- 거듭제곱
- 회고
- 스프링
- testing
- Publishing
- 부트캠프
- 페어프로그래밍
- java
- 인텔리제이
- 그리디
- 백준알고리즘
- spring data jpa
- 첫글자대문자
- 컬렉션프레임워크
- 계산기만들기
- CSS
- 데일리코딩
- 제네릭스
- 백엔드
- 자료구조
- CLI명령어
- FilterChain
- 자바
Archives
- Today
- Total
나의 모양
[DailyCoding] 16 | isIsogram 본문
✏️ Description
문자열을 입력받아 아이소그램인지 여부를 리턴
- 입력: String
- 출력: boolean
- 입출력 예시
boolean output = isIsogram("aba"); // false output = isIsogram("Dermatoglyphics"); // true output = isIsogram("moOse"); // false
📝 Flow
- 입력받은 문자열을 하나씩 잘라서 => split()
- 문자열 배열에 담아서 순회 => forEach
- 같은 문자가 있는지 앞뒤로 읽어오면서 비교 => indexOf, lastIndexOf
- 문자 비교해서 같은게 있으면 false 리턴
🤯 Trouble
- 대소문자는 구별하지 않는다고 해서 a == A 로 생각했다. ⇒ 값이 안나옴
- a ≠ A
📚 TIL
- indexOf(”찾을 특정 문자”, “시작할 위치”)
- 시작할 위치는 생략이 가능하고, 생략할 경우 0번째 인덱스부터 찾음
- 찾는 글자가 없으면 -1 리턴
- lastIndexOf(”찾을 특정 문자”, “시작할 위치”) ⇒ 오른쪽에서부터 찾음
- 찾는 글자가 없으면 -1 리턴
- 주의점
- 뒤에서부터 인덱스 위치를 세주는게 아니라 앞에서(왼쪽 → 오른쪽)부터 위치한 인덱스를 반환
- 지정된 문자열에서 indexOf()와 lastIndexOf() 메서드가 동일한 값을 반환하는 경우, 문자열에 반복되는 문자가 없는 것
👩🏻💻 Implementation
if(str.equals("")) return true;
str = str.toLowerCase();
String[] word = str.split("");
for(String strArr : word) {
if(str.indexOf(strArr) != str.lastIndexOf(strArr)) {
return false;
}
}
return true;
💬 Thought
- reference에서는 HashMap을 사용했다. 전혀 생각하지 못했는데 레퍼런스 잘 보고 다음에 다시 풀어봐야겠다.
'SEB > Daily Coding' 카테고리의 다른 글
[DailyCoding] 21 | largestProductOfThree (0) | 2022.08.22 |
---|---|
[DailyCoding] 17 | computeSquareRoot (0) | 2022.08.12 |
[DailyCoding] 08 | convertDoubleSpaceToSingle (0) | 2022.08.01 |
[DailyCoding] 07 | convertListToObject (0) | 2022.07.29 |
[DailyCoding] 06 | letterCapitalize (0) | 2022.07.28 |
Comments