반응형
포인트
1. map, 딕셔너리를 사용하면 간단하게 풀 수 있습니다. 또한, 파이썬에서는 ord(), chr()
C++ 에서도 변형하여 사용할 수 있으니 참고하시면 좋습니다.
🧶문서는 항상 수정 될 수 있습니다. 비판은 환영합니다.
c++/cpp
#include <bits/stdc++.h>
using namespace std;
class Solution {
public:
int titleToNumber(string s) {
string standard = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unordered_map<char, int> map;
for (int i=0; i<standard.size(); i++){
map[standard[i]] = i+1;
}
int result = 0;
int a = 1;
while (s.size()>0){
if(s.size()==1){
result+=(map[s[0]]*a);
s="";
} else{
result += (map[s[s.size()-1]]*a);
s = s.substr(0,s.size()-1);
a*=26;
}
}
return result;
}
};
python
class Solution:
def titleToNumber(self, s: str) -> int:
standard = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
result = 0
dict1 = {ele: idx+1 for idx, ele in enumerate(standard)}
a = 1
while len(s) > 0:
if(len(s) == 1):
result += (dict1[s[-1]]*a)
s = ''
else:
result += (dict1[s[-1]]*a)
s = s[:-1]
a *= 26
return result
반응형
'알고리즘' 카테고리의 다른 글
[알고리즘] Shortest Path in Binary Matrix (0) | 2021.02.14 |
---|---|
[알고리즘] Intersection of Two Arrays 2 (0) | 2021.02.13 |
[알고리즘] Number of Steps to Reduce a Number to Zero (0) | 2021.02.12 |
[알고리즘] Determine if String Halves Are Alike (0) | 2021.02.04 |
[알고리즘] How Many Numbers Are Smaller Than the Current Number (0) | 2021.02.04 |
댓글