Simplify Path
8073 단어 Path
For example,path =
"/home/"
, => "/home"
path = "/a/./b/../../c/"
, => "/c"
click to show corner cases.
Corner Cases:
Did you consider the case where path =
"/../"
?In this case, you should return "/"
. Another corner case is the path might contain multiple slashes
'/'
together, such as "/home//foo/"
.In this case, you should ignore redundant slashes and return "/home/foo"
. 이 문 제 는 사고 방향 이 매우 뚜렷 하 므 로 stack 으로 한다.마지막 으로 출력 할 때 대기 열 로 출력 해 야 합 니 다.
/.. / 이전 층 으로 돌아 가기
/. / 현재 층
1 public class Solution {
2 public String simplifyPath(String path) {
3 // Start typing your Java solution below
4 // DO NOT write main() function
5 if(path == null) return null;
6 String[] element = path.split("/");
7 Stack<String> st = new Stack<String>();
8 for(int i = 0; i < element.length; i ++){
9 if(element[i].length() != 0){
10 if(element[i].equals("..")){
11 if(st.isEmpty() != true)
12 st.pop();
13 }else if(element[i].equals(".")){
14 }else{
15 st.push(element[i]);
16 }
17 }
18 }
19 StringBuffer sb = new StringBuffer();
20 if(st.isEmpty() == true){
21 sb.append("/");
22 }else{
23 for(int i = 0; i < st.size(); i ++){
24 sb.append("/");
25 sb.append(st.elementAt(i));
26 }
27 }
28 return sb.toString();
29 }
30 }
세 번 째:
1 public class Solution {
2 public String simplifyPath(String path) {
3 String[] parts = path.split("/");
4 LinkedList<String> ll = new LinkedList<String> ();
5 for(int i = 0; i < parts.length; i ++){
6 System.out.println(parts[i]);
7 if(parts[i].equals("") || parts[i].equals(".") || (parts[i].equals("..") && ll.size() == 0)) continue;
8 else if(parts[i].equals("..") && ll.size() != 0) ll.removeLast();
9 else ll.add(parts[i]);
10 }
11 StringBuffer sb = new StringBuffer();
12 while(ll.size() != 0){
13 sb.append("/");
14 sb.append(ll.remove());
15 }
16 if(sb.length() == 0) sb.append("/");
17 return sb.toString();
18 }
19 }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
cocos2d Lua 학습(一)ios에서 루아 함수 호출 및 전참 방법 lua 코드: 출력 결과: lua 호출 C++ 방법: add 함수: lua 코드: 출력 결과: 함수를 호출합니다. 함수를 호출하려면 다음 협의를 따르십시오. 우선, 호출할 함...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.