데이터 구조 --- 스 택 의 응용
9256 단어 데이터 구조 와 알고리즘창고.문자열 역순파일 문자 균형
스 택 은 한 위치 에서 만 삽입 과 삭 제 를 제한 하 는 표 입 니 다. 이 위 치 는 표 의 끝 이 고 스 택 꼭대기 라 고도 합 니 다.스 택 에 대한 작업 은 스 택 에 들 어가 고 스 택 에 들 어 가 는 것 을 삽입 이 라 고 합 니 다. 스 택 에 나 가 는 것 은 마지막 에 삽 입 된 요 소 를 삭제 하 는 것 입 니 다.그래서 스 택 은 LIFO (후진 선 출) 표 라 고도 불 린 다.스 택 은 보통 두 가지 실현 방식 이 있 는데 배열 의 실현 과 링크 가 실현 된다.
다음은 스 택 의 두 개의 애플 리 케 이 션 demo 입 니 다.
문자열 역순
스 택 후진 이 먼저 나 오 는 특성 때문에 스 택 은 문자열 의 역순 에 사용 할 수 있 습 니 다.
public void reverseStr(String str){
Stack stack=new Stack<>();
for(int i=0;ilength();i++){
char ch =str.charAt(i);
stack.push(ch);
}
StringBuilder stringBuilder =new StringBuilder();
while(!stack.isEmpty()){
Character ch = stack.pop();
stringBuilder.append(ch);
}
System.out.println(stringBuilder.toString());
}
파일 데이터 문자 균형
한 파일 에 몇 메 가 크기 가 있 을 수 있 습 니 다. 파일 에 약간의 괄호 가 빠 진 상황 이 발생 할 수 있 습 니 다. 이 때 유용 한 도 구 는 파일 에 있 는 모든 기호 가 쌍 을 이 루 었 는 지 확인 하 는 것 입 니 다.
/**
* @author L
* demo, , 。
*/
public Boolean isValid(File file) throws IOException {
Map map =new HashMap<>();
map.put('(',')');
map.put('[',']');
map.put('{
','}');
map.put('《','》');
Reader fd =new FileReader(file);
StringBuilder str=new StringBuilder();
int len;
while((len=fd.read()) !=-1){
str.append((char)len);
}
Stack stack=new Stack<>();
for(int i=0;itoString().length();i++){
char cha =str.charAt(i);
if(map.keySet().contains(cha)){
stack.push(cha);
}else if(map.values().contains(cha)){
// , value 。
if(!stack.empty()&&map.get(stack.peek())==cha){
stack.pop();
}else{
return false;
}
}
}
// , , , 。
return stack.isEmpty();
}
테스트
public static void main(String[] args) {
StackDemo stackDemo=new StackDemo();
String str ="12345678dhbdh";
stackDemo.reverseStr(str);
File file=new File("D://1.txt");
try {
Boolean valid = stackDemo.isValid(file);
System.out.println(valid);
} catch (IOException e) {
e.printStackTrace();
}
}
테스트 결과
hdbhd87654321
true
결어
반 보 를 쌓 지 않 으 면 천리 까지 갈 수 없다.자신 을 충실하게 하고 자신 을 향상시키다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
[JAVA] 배열 회전 출력요소 가 출력 을 시작 하 는 위치 에 주의 하 십시오. 모두 몇 라운드 의 수출 이 있 습 니까? n/2 + 1 매 라 운 드 는 상, 우, 하, 좌 로 나 뉜 다. 각 방향의 시작 위치 와 좌표 의 관 계 를 구...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.