일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 비트마스크
- UML
- disjoint set
- 포트앤어댑터 아키텍처
- 스프링
- 파이썬
- 헥사고날 아키텍처
- springboot
- JPA
- 데이터 flow
- series
- dataframe
- DP
- 문자열
- 세그먼트 트리
- BFS
- 위상정렬
- 다익스트라
- pandas
- spring security
- 자바
- 백준
- 이펙티브 자바
- ddd
- java
- dfs
- docker
- equals
- 알고리즘
- Redis
- Today
- Total
목록문자열 (3)
코딩못하는사람
자바의 String 객체와 String 리터럴 자바에서 String은 객체로 선언할 수도 있고 리터럴로도 선언할 수 있다. String temp=new String("abcde"); 은 new 연산자를 활용한 객체 생성 방식 String temp1="abcde"; 은 문자열 리터럴 방식으로 선언한 방식이다. 객체를 생성하는 방식은 Heap영역에, 리터럴은 Heap영역 속 String constant pool에 저장된다. 예시 그림을 보고 이해하자. String str1 = "madplay"; String str2 = "madplay"; String str3 = new String("madplay"); String str4 = new String("madplay"); 문자열 비교 equals메소드: Str..
파이썬에서의 문자열 문제해결방법 in을 사용해서 포함여부 판단하기 find()를 사용해서 index까지 구하기 KMP알고리즘을 사용해서 index 또는 포함여부 구하기 1,2번은 최악의 경우 O(N*M)이지만 KMP알고리즘은 O(N+M)에 해결 가능하다. 리스트 형태로 저장하였다면 ''.join(list_name)으로 공백없는 문자열을 만들 수 있다. 1. in을 사용하기 문자열에 in을 사용해서 찾는 문자열이 포함되는지 판단 가능하다. 만약 포함된다면 True를 아니면 False값을 반환해준다. ex) string='python' print('pyt' in string) =>True print('ppp' in string) ->False 2.find() 함수 사용하기 문자열간에 포함여부와 인덱스를 반환..
KMP 알고리즘이란? 우리가 문서에서 컨트롤+F눌러서 문자를 검색하던 항상 쓰였던 알고리즘이다. 알고리즘을 어떻게 구현하였을지 단순히 생각해보면 당연히 모든 인덱스에서 한번씩 패턴을돌려보는 N이 텍스트의 길이,M이 패턴의 길이라고 할 때 O(N*M)을 생각할 것이다. 하지만 KMP알고리즘은 O(N+M)정도로 줄여준다 KMP알고리즘에는 두가지 함수가 필요하다 전처리 테이블 KMP알고리즘은 접두사와 접미사를 기반으로 만드는 전처리 테이블이 필요하다 접두사와 접미사 같을때의 최대길이를 저장해주는 것이다 코드로 구현하면 다음과 같다. KMP 함수구현 이렇게 전처리 테이블을 만들면 이제 테이블을 활용하여 겹치는 부분들을 활용하여 j는 순서대로 돌지만 i를 테이블값에 따라 빙빙 돌리면 된다 그림으로 보면 3번 인덱..