2 분 소요

특정 문자열로 끝나는 가장 긴 부분 문자열 찾기

문제 설명

문자열 myStringpat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.


제한사항

  • 5 ≤ myString ≤ 20
  • 1 ≤pat≤ 5
    • pat은 반드시 myString의 부분 문자열로 주어집니다.
  • myStringpat에 등장하는 알파벳은 대문자와 소문자를 구분합니다.

입출력 예

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

문자열이 몇 번 등장하는지 세기

문제 설명

문자열 myStringpat이 주어집니다. 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의 원소는 알파벳 소문자로 이루어진 문자열입니다.

입출력 예

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 != ""]

’’ 와 “ “의 차이
"”는 하나의 공백을 뜻하고 “ “는 문자열 값이 없음을 뜻합니다.

댓글남기기