Simplify Path [LeetCode]
7022 단어 LeetCode
For example,path =
"/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
click to show corner cases.
Corner Cases:
"/../"
?In this case, you should return "/"
. '/'
together, such as "/home//foo/"
.In this case, you should ignore redundant slashes and return "/home/foo"
. Summary: Very careful about corner cases, like "/", "/.", "..".
1 class Solution {
2 public:
3 void handleEntry(vector<string> &path_stack, string path_entry) {
4 if(path_entry == "..") {
5 if(path_stack.size() > 0)
6 path_stack.pop_back();
7 }else if (path_entry != ".")
8 path_stack.push_back(path_entry);
9 }
10
11 string simplifyPath(string path) {
12 string simple_path;
13 if(path.size() == 0)
14 return simple_path;
15 vector<string> path_stack;
16 string path_entry;
17 for(int i = 0; i < path.size(); i ++) {
18 if(path_entry.size() == 0 && path[i] == '/'){
19 continue;
20 }else if (path_entry.size() != 0 && path[i] == '/') {
21 handleEntry(path_stack, path_entry);
22 path_entry.clear();
23 }else {
24 path_entry.push_back(path[i]);
25 }
26 }
27 if(path_entry.size() > 0)
28 handleEntry(path_stack, path_entry);
29
30 for(string item: path_stack) {
31 simple_path += "/";
32 simple_path += item;
33 }
34 if(simple_path.size() == 0)
35 return "/";
36 return simple_path;
37 }
38 };
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
python 문자열 입력으로 모든 유효한 IP 주소 생성(LeetCode 93번 문제)이 문제의 공식 난이도는 Medium으로 좋아요 1296, 반대 505, 통과율 35.4%를 눌렀다.각 항목의 지표로 말하자면 보기에는 약간 규범에 맞는 것 같지만, 실제로도 확실히 그렇다.이 문제의 해법과 의도는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.