[코딩 기초 트레이닝]Day17 문자열
특정 문자열로 끝나는 가장 긴 부분 문자열 찾기
문제 설명
문자열 myString
과 pat
가 주어집니다. myString
의 부분 문자열중 pat
로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.
제한사항
- 5 ≤
myString
≤ 20 - 1 ≤
pat
≤ 5pat
은 반드시myString
의 부분 문자열로 주어집니다.
myString
과pat
에 등장하는 알파벳은 대문자와 소문자를 구분합니다.
입출력 예
myString | pat | result |
---|---|---|
“AbCdEFG” | “dE” | “AbCdE” |
“AAAAaaaa” | “a” | “AAAAaaaa” |
solution
def solution(myString, pat):
i = myString.rfind(pat)
if i != len(myString):
return myString[: i+len(pat)]
else:
return myString
문자열이 몇 번 등장하는지 세기
문제 설명
문자열 myString
과 pat
이 주어집니다. myString
에서 pat
이 등장하는 횟수를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤
myString
≤ 1000 - 1 ≤
pat
≤ 10
입출력 예
myString | pat | result |
---|---|---|
“banana” | “ana” | 2 |
“aaaa” | “aa” | 3 |
solution
def solution(myString, pat):
count = 0
pl = len(pat)
for i in range(len(myString)):
if pat in myString[i:i + pl]:
count += 1
return count
글자가 정확하게 나누어 떨어지는게 아니라 중복으로 사용 돼서도 해당이 되기 때문에, 모든 열을 검사하면서 전체를 다 검사하면 범위 사이에서는 무조건 카운트 되기 때문에 찾고자 하는 문자열 길이만큼씩만 검사를 했습니다.
ad 제거하기
문제 설명
문자열 배열 strArr
가 주어집니다. 배열 내의 문자열 중 “ad”라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤
strArr
의 길이 ≤ 1,000- 1 ≤
strArr
의 원소의 길이 ≤ 20 strArr
의 원소는 알파벳 소문자로 이루어진 문자열입니다.
- 1 ≤
입출력 예
strArr | result |
---|---|
[“and”,”notad”,”abcd”] | [“and”,”abcd”] |
[“there”,”are”,”no”,”a”,”ds”] | [“there”,”are”,”no”,”a”,”ds”] |
solution
def solution(strArr):
new = []
for i in strArr:
if "ad" not in i:
new.append(i)
else:
pass
return new
-----------------------------------
def solution(strArr):
return [word for word in strArr if 'ad' not in word]
처음에 remove를 사용해서 코드를 실행했을 때, 테스트케이스 2번까지는 통과했으나 그 이후로 실패했습니다.
def solution(strArr):
for i in strArr:
if "ad" in i:
strArr.remove(i)
return strArr
공백으로 구분하기 1
문제 설명
단어가 공백 한 개로 구분되어 있는 문자열 my_string
이 매개변수로 주어질 때, my_string
에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string
은 영소문자와 공백으로만 이루어져 있습니다.- 1 ≤
my_string
의 길이 ≤ 1,000 my_string
의 맨 앞과 맨 뒤에 글자는 공백이 아닙니다.
입출력 예
my_string | result |
---|---|
“i love you” | [“i”, “love”, “you”] |
“programmers” | [“programmers”] |
solution
def solution(my_string):
return my_string.split(" ")
공백으로 구분하기 2
문제 설명
단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string
이 매개변수로 주어질 때, my_string
에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
제한사항
my_string
은 영소문자와 공백으로만 이루어져 있습니다.- 1 ≤
my_string
의 길이 ≤ 1,000 my_string
의 맨 앞과 맨 뒤에도 공백이 있을 수 있습니다.my_string
에는 단어가 하나 이상 존재합니다.
입출력 예
my_string | result |
---|---|
” i love you” | [“i”, “love”, “you”] |
” programmers “ | [“programmers”] |
solution
def solution(my_string):
new = my_string.split(" ")
return [i for i in new if i != '']
-------------------------------------------
def solution(my_string):
return [i for i in my_string.split(" ") if i != ""]
’’ 와 “ “의 차이
"”는 하나의 공백을 뜻하고 “ “는 문자열 값이 없음을 뜻합니다.
댓글남기기