[LeetCode] 2109. Adding Spaces to a String - Python

2024. 12. 3. 14:08·알고리즘/LeetCode

 

난이도: Medium

 

문제 설명


You are given a 0-indexed string s and a 0-indexed integer array spaces that describes the indices in the original string where spaces will be added. Each space should be inserted before the character at the given index.

 

  • For example, given s = "EnjoyYourCoffee" and spaces = [5, 9], we place spaces before 'Y' and 'C', which are at indices 5 and 9 respectively. Thus, we obtain "Enjoy Your Coffee".

Return the modified string after the spaces have been added.

 

문제 예시


Example 1

Input: s = "LeetcodeHelpsMeLearn", spaces = [8,13,15]
Output: "Leetcode Helps Me Learn"
Explanation: 
The indices 8, 13, and 15 correspond to the underlined characters in "LeetcodeHelpsMeLearn".
We then place spaces before those characters.

 

Example 2

Input: s = "icodeinpython", spaces = [1,5,7,9]
Output: "i code in py thon"
Explanation:
The indices 1, 5, 7, and 9 correspond to the underlined characters in "icodeinpython".
We then place spaces before those characters.

 

Example 3

Input: s = "spacing", spaces = [0,1,2,3,4,5,6]
Output: " s p a c i n g"
Explanation:
We are also able to place spaces before the first character of the string.

 

 

제한 사항


  • 1 <= s.length <= 3 * 10^5
  • s consists only of lowercase and uppercase English letters.
  • 1 <= spaces.length <= 3 * 10^5
  • 0 <= spaces[i] <= s.length - 1
  • All the values of spaces are strictly increasing.

 

✏️ Solution(솔루션)


class Solution:
    def addSpaces(self, s: str, spaces: List[int]) -> str:
        s = list(s)

        for space in spaces:
            s[space] = f' {s[space]}'
        
        return ''.join(s)

 

먼저, s 문자열을 list로 바꿔주었다. (ex. 'abc' → ['a', 'b', 'c'])

 

그 후 바꾼 list에서 spaces에 저장된 위치의 요소에 앞에 공백을 추가하여 저장했다.

예를 들어, 만약 input이 s = 'abc'이고 spaces = [1] 이라고 한다면 ['a', ' b', 'c']와 같이 저장된다.

 

마지막으로 이 list를 join함수를 통해 문자열로 변환하여 반환하면 된다.


[LeetCode] 2109. Adding Spaces to a String

'알고리즘 > LeetCode' 카테고리의 다른 글

[LeetCode] 2554. Maximum Number of Integers to Choose From a Range I (Python)  (0) 2024.12.06
[LeetCode] 2825. Make String a Subsequence Using Cyclic Increments (Python)  (0) 2024.12.05
[LeetCode] 1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence - Python  (0) 2024.12.02
[LeetCode] 1346. Check If N and Its Double Exist - Python  (0) 2024.12.01
[LeetCode] 3243. Shortest Distance After Road Addition Queries I - Python  (0) 2024.11.28
'알고리즘/LeetCode' 카테고리의 다른 글
  • [LeetCode] 2554. Maximum Number of Integers to Choose From a Range I (Python)
  • [LeetCode] 2825. Make String a Subsequence Using Cyclic Increments (Python)
  • [LeetCode] 1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence - Python
  • [LeetCode] 1346. Check If N and Its Double Exist - Python
Laewon Jeong
Laewon Jeong
  • Laewon Jeong
    래원
    Laewon Jeong
    글쓰기 | 관리
  • GitHub

    • github.com/laewonJeong
  • 전체
    오늘
    어제
    • 분류 전체보기 (172)
      • Docker 및 Kubernetes (11)
        • Docker (5)
        • Kubernetes (6)
      • Data Engineering (18)
        • Hadoop (5)
        • Spark (5)
        • Kafka (5)
        • Airflow (3)
      • CI|CD (3)
      • 알고리즘 (136)
        • 알고리즘 (2)
        • LeetCode (118)
        • 프로그래머스 (11)
        • BOJ (1)
        • 코딩테스트 대비 (4)
      • 서버 (2)
        • 미니 서버 (2)
      • 잡담 (1)
  • 태그

    Apache Spark
    오블완
    분산처리
    programmers
    이진탐색
    리트코드
    도커
    BFS
    dfs
    우선순위큐
    그래프
    Kubernetes
    heapq
    docker
    분산
    프로그래머스
    Python
    아파치 하둡
    알고리즘
    쿠버네티스
    백트래킹
    누적합
    코딩테스트
    leetcode
    DP
    티스토리챌린지
    String
    아파치 스파크
    파이썬
    문자열
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Laewon Jeong
[LeetCode] 2109. Adding Spaces to a String - Python
상단으로

티스토리툴바