알고리즘 연습 편: 문자열 교체 (문자열)
한 문자열 의 빈 칸 을 '% 20' 으로 바 꾸 는 함 수 를 구현 하 십시오.예 를 들 어, 문자열 이 We Are Happy 일 때, 교 체 된 문자열 은 We% 20Are% 20Happy 입 니 다.
문제 풀이 의 사고 방향.
생각 은 간단 합 니 다. stringbuffer 를 통 해 하나씩 옮 겨 다 니 며 빈 칸 의 문 자 를 '% 20' 으로 바 꾸 면 됩 니 다!!말 이 많 지 않 으 면, 직접 코드 를 붙인다.
두 가지 방법 모두 온라인 테스트 통과!
코드 구현
블 로그 설정 페이지 에 가서 좋아 하 는 코드 필름 하 이 라이트 스타일 을 선택 하 세 요. 아래 에 똑 같은 하 이 라이트
를 보 여 줍 니 다.public class replaceSpace {
// ‘%20’
public String replace(StringBuffer str){
StringBuffer res=new StringBuffer();
for (int i=0;i<str.length();i++){
if (str.charAt(i)==' '){
res.append("%20");
}else {
res.append(str.charAt(i));
}
}
return res.toString();
}
public String replace_2(StringBuffer str){
int spaceNum=0;
for (int i=0;i<str.length();i++){
if (str.charAt(i)==' '){
spaceNum++;
}
}
int oldLength=str.length()-1;
int newLength=str.length()+spaceNum*2;
// 2 , 6 , 4 =spacenum*2
str.setLength(newLength);
int newIndex=newLength-1;
for (int i=oldLength;i>=0;i--){
if (str.charAt(i)!=' '){
str.setCharAt(newIndex--,str.charAt(i));
}else {
str.setCharAt(newIndex--,'0');
str.setCharAt(newIndex--,'2');
str.setCharAt(newIndex--,'%');
}
}
return str.toString();
}
public static void main(String[] args) {
replaceSpace test=new replaceSpace();
StringBuffer str =new StringBuffer();
str.append("we");
str.append(" ");
str.append("are");
str.append(" ");
str.append("happy!");
String result=test.replace_2(str);
System.out.println(result);
}
}
총결산
이 문 제 는 면접 고전 교재 인 검 지 오 피 스에 서 유래 한 것 으로 다른 유형의 문제 에 속한다.알고리즘 길에서 끊임없이 전진 하 는 많은 사람들 과 마찬가지 로 끊임없이 연습 하고 자신 을 수련 합 니 다!블 로그 에 존재 하 는 의문 이나 건의 가 있 으 면 아래 댓 글 에서 함께 소통 할 수 있 습 니 다. 감사합니다!마지막 으로 AIAS 감사합니다!
본 블 로그 의 유용 하 다 고 생각 하 는 고객 님 께 서 는 칭찬 과 격려 를 해 주 실 수 있 습 니 다!헤헤
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
\ # 데이터 구조 와 알고리즘 학습 노트 \ # 검 지 제공 42: 단어 순 서 를 뒤 집기 + 테스트 사례 (자바, C / C +)2019.1.2 검 지 Offer 는 제로 브러시 개인 노트 정리 (66 문제 전) 디 렉 터 리 전송 문 에서 인터넷 에 서 는 원 서 를 포함 한 많은 방법 이 문장 을 두 번 뒤 집 는 것 이다. 첫 번...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.