본문 바로가기

Algorithm/Leet Code

LeetCode #520 DetectCapital. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접

LeetCode #520 DetectCapital. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접


 문제 자체는 단순히 조건문으로만 풀 수 있는데, if if if 들어가는게 별로 보기 좋진 않음

최초 한바퀴에 전체 대/소문자 나타내는 bit 이나 map 을 만들어놓고 해볼까 하다가 성능이 더 좋을 것 같진 않아서 그냥 풀었는데

if 분기 많이 하긴 했는데도 퍼포먼스는 100% 나옴





LeetCode #520

Q.

 Given a word, you need to judge whether the usage of capitals in it is right or not.

We define the usage of capitals in a word to be right when one of the following cases holds:

  1. All letters in this word are capitals, like "USA".
  2. All letters in this word are not capitals, like "leetcode".
  3. Only the first letter in this word is capital if it has more than one letter, like "Google".
Otherwise, we define that this word doesn't use capitals in a right way.

 

 주어진 단어에서, 대문자가 제대로 사용되었는지 확인할 필요가 있다.

제대로된 대문자 사용법은 다음과 같다.


1. 모든 문자가 대문자 "USA"

2. 모든 문자가 소문자 "leetcode"

3. 제일 처음 문자만 대문자고 나머지는 소문자 "Google"


이 외에는, 대문자를 제대로 썼다고 정의하지 않는다.



e.g. 

Example 1:

Input: "USA"
Output: True

Example 2:

Input: "FlaG"
Output: False


Process

// Process

//1. Input string word

//2. Check if it starts with capital character

// 2.1. If so -> Check if rest of the word are all capital or lowercase letter

// 2.2. If not -> Check if rest of the word are all lowercase

//3. Return answer



// 처리과정

//1. 문자열을 입력받는다.

//2. 대문자로 시작하는지 확인해서

// 2.1. 대문자로 시작하면 -> 나머지가 전부 대문자인지, 아니면 전부 소문자인지 확인한다.

// 2.2. 소문자로 시작하면 -> 나머지가 전부 소문자인지 확인한다.

//3. 결과 반환한다.





Code.. lemme see example code!!!

코드.. 예제코드를 보자!!!




#include <string>

#include <iostream>


using namespace std;



class Solution {

private :

bool isUpperCaseLetter(char letter) {

return (letter >= 65 && letter <= 90);

}

bool isLowerCaseLetter(char letter) {

return (letter <= 122 || letter >= 97);

}


public:

bool detectCapitalUse(string word) {

bool result = true;

if (word.size() > 0)

{

if (isUpperCaseLetter(word[0])) // capital

{

if (word.size() > 1)

{

if (isUpperCaseLetter(word[1]))

{

for (int i = 2; i < word.size(); ++i)

{

if (word[i] > 90 || word[i] < 65)

result = false;

}

}

else if (isLowerCaseLetter(word[1]))

{

for (int i = 2; i < word.size(); ++i)

{

if (word[i] > 122 || word[i] < 97)

result = false;

}

}

}

}

else if (isLowerCaseLetter(word[0])) // lowercase

{

for (int i = 1; result && i < word.size(); ++i)

{

if (word[i] > 122 || word[i] < 97)

result = false;

}

}

}

return result;

}

};



int main(int argc, char *argv[]) {


Solution sln;


cout << sln.detectCapitalUse("Leetcode") << endl;


}




Something else you might like...?





2019/02/22 - [Algorithm/Leet Code] - LeetCode #429 N-aryTreeLevelOrderTraversal. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접

2019/02/18 - [Algorithm/Leet Code] - LeetCode #412 FizzBuzz. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접

2019/02/17 - [Algorithm/Leet Code] - LeetCode #415 AddStrings. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접

2019/02/10 - [Algorithm/Leet Code] - LeetCode #171 ExcelSheetColumnNumber. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접

2019/02/09 - [Algorithm/Leet Code] - LeetCode #709 ToLowerCase. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접

2019/02/08 - [Algorithm/Leet Code] - LeetCode #400 NthDigit. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인터뷰,기술면접





2019/01/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #60 sudoku. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive

2019/01/12 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #59 spiralNumbers. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive

2019/01/08 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #58 messageFromBinaryCode. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive

2019/01/07 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #57 fileNaming. Algorithm,알고리즘,Codefights,CodeSignal,코드파이트,코드시그널,예제,문제해결능력,example,c++,java,재귀,recursive

2019/01/04 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #56 digitsProduct. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제,문제해결능력,example, c++ java c# scalar

2019/01/04 - [Algorithm/Code Fights (Code Signal)] - Aracade Intro #55 differentSquares. Algorithm, 알고리즘, Codefights, CodeSignal, 코드파이트, 코드시그널, 예제,문제해결능력,example, c++ java c# scalar



2018/12/28 - [Programming/Software Architecture] - Perfecting OO's Small Classes and Short Methods. 완벽한 객체지향의 작은 클래스와 짧은 메소드, Book:ThoughtWorks Anthology, Java,cpp,자바,oop,좋은코드,객체지향프로그래밍 - (#9, Tell, Don't Ask)

2018/12/26 - [Programming/Software Architecture] - Perfecting OO's Small Classes and Short Methods. 완벽한 객체지향의 작은 클래스와 짧은 메소드, Book:ThoughtWorks Anthology, Java,cpp,자바,oop,좋은코드,객체지향프로그래밍 (1)



2019/01/14 - [Programming/Java] - 자바 메모리 누수 체크/확인/고치는 방법, Memory leak check/fix in Java application, cleanCode/좋은코드/oop/객체지향



2019/01/25 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(3)

2018/12/16 - [Life/Health care] - L-Arginine 아르기닌 usage/side effects/dosage 효능/부작용/성인,소아 용법(2)

2018/12/27 - [Life/Health care] - Milk-Thistle 밀크시슬 usage/side effects/dosage/fatigue/supplement,효능/부작용/성인,소아 용법/건강/피로회복/영양제

2018/12/26 - [Life/Health care] - Selenium 셀레늄 usage/side effects/dosage 효능/부작용/성인,소아 용법