넘치게 채우기
[LeetCode] 2490. Circular Sentence 본문
https://leetcode.com/problems/circular-sentence/description/?envType=daily-question&envId=2024-11-02
leetcode - Circular Sentence
문제 유형: 문자열 처리, 배열
문제 난이도: Easy
문제
A sentence is a list of words that are separated by a single space with no leading or trailing spaces.
- For example, "Hello World", "HELLO", "hello world hello world" are all sentences.
Words consist of only uppercase and lowercase English letters. Uppercase and lowercase English letters are considered different.
A sentence is circular if:
- The last character of a word is equal to the first character of the next word.
- The last character of the last word is equal to the first character of the first word.
For example, "leetcode exercises sound delightful", "eetcode", "leetcode eats soul" are all circular sentences. However, "Leetcode is cool", "happy Leetcode", "Leetcode" and "I like Leetcode" are not circular sentences.
Given a string sentence, return true if it is circular. Otherwise, return false.
문장은 하나의 공백으로 구분된 단어들의 리스트이다. 양끝에 공백은 없다.
단어는 오로지 영어대문자 또는 소문자로만 이루어져있다.
각 단어의 끝 글자가 다음 단어의 시작 글자가 되고, 마지막 단어의 경우 첫 단어의 시작글자와 일치하면 문자는 원형이라고 한다.
원형문자인지 판단하시오.
풀이
공백을 기준으로 문장을 단어들의 배열로 토큰화한다.
그 뒤, 배열을 순차적으로 읽으며, 현재 단어의 끝글자와 다음 단어의 시작글자를 비교하면 된다.
마지막 단어를 고려해서, 다음 단어를 계산할 때 모듈러를 적용한다.
코드
C++
class Solution {
public:
bool isCircularSentence(string sentence) {
vector<string> words;
stringstream ss(sentence);
string next;
while(ss >> next) {
words.push_back(next);
}
int n = words.size();
for(int i = 0; i < n; ++i) {
if(words[i][words[i].size()-1] != words[(i + 1) % n][0]) return false;
}
return true;
}
};
'PS > LeetCode' 카테고리의 다른 글
[LeetCode] 3163. String Compression III (0) | 2024.11.04 |
---|---|
[LeetCode] 796. Rotate String (0) | 2024.11.03 |
[LeetCode] 1957. Delete Characters to Make Fancy String (0) | 2024.11.01 |
[LeetCode] 2463. Minimum Total Distance Traveled (0) | 2024.10.31 |
[LeetCode] 1671. Minimum Number of Removals to Make Mountain Array (0) | 2024.10.30 |