초심자/면접시험을 위한 자바 소프트웨어 프로그램 보기: 임시 가변을 를 사용하는 없이 정수 (와 끈) 가변을 교환하는 방법
x & y가 정변수다는 것을 말하십시오. 도전은 임시 가변 사용 없는 그(것)들을 교환하기 위한 것이다.
해결책은 문제 자체 처럼 간단하다:
x = x + y;
y = x - y;
x = x - y;
갱신 1: 잭과 Alexey는 그 후 정정된 나의 해결책에 있는 오식을 지적했다. 아래에 그들의 코멘트를 보십시오.
해결책의 간명은 저에게 호소한다. 그것은 명확하게 지정 통신수 ("=")의 의미를 설명한다.
만약에 그들이 끈이면 무엇?
주: 당신은 자바 API에 있는 끈 방법을 사용할 수 있다.
해결책은 여기 있다:
x = x + y;
y = x.substring (0, x.indexOf (y));
x = x.substring (x.indexOf (y) + y.length ());
당신은 상사성을 볼 수 있는가?
당신은 위의 어느 쪽이든에 간단한 해결책을 제공할 수 있는가?
갱신 2: 로버트는 지금 막 (아래에 그의 코멘트를 보십시오). 그는 1개의 끈이 또 다른 한개에서 포함될 때 끈 해결책이 작동하지 않는다는 것을 지적했다. 그의 해결책은:
x = x + y;
y = x.substring (0, x.length () - y.length ());
x = x.substring (y.length ());
어떻게의 밑에 에, 자바 소프트웨어 신청하는, 기술 주 |
|
RSS 2.0 |
Trackback 이 기사 |
이 기사를 이메일을 보내십시오
당신은 또한 읽고 싶을지도 모른다 |


Technorati 마음에 드는 것에게 추가하십시오

































2005년 10월 30일 2:53 AM에
x: 1개의 y: 2
x = x + y;
x: 3 y: 2
x = x - y;
x: 1개의 y: 2
y = x - y;
x: 1개의 y: -1
2005년 10월 30일 3:04 AM에
x = x+y;
y = x-y;
x = x-y;
2005년 10월 30일 8:36 AM에
어쩌면
x = x + y;
y = x - y;
x = x - y;
2005년 10월 30일 9:24 AM에
@Jack & Alexey
Oops!
캐치를 위한 감사합니다. 정정하는.
다만 당신이 세심한지 검사
2005년 10월 30일 9:25 AM에
BTW: 나는 실제로 후보자를 회견하고 있는 동안 이 질문을 오늘 질문했다.
2005년 10월 31일 8:15 AM에
끈 견본은 끈 x가 예를 들면 끈 y.를 포함하는 경우에 실패할 것이다,
끈 x = "여보세요 세계";
끈 y = "여보세요";
단계 1: x = x + y;
x = "여보세요 WorldHello"
단계 2: y = x.substring (0, x.indexOf (y));
x.indexOf (y) = 0, 이렇게 y = "";
단계 3: x = x.substring (x.indexOf (y) + y.length ());
x.indexOf (y) = 0과 y.length = 0, 이렇게 x = "여보세요 WorldHello"
당신은 끈에 있는 lastIndexOf () 방법을 같이 사용해서 이것을 고칠 수 있다
x = x + y;
y = x.substring (0, x.lastIndexOf (y));
x = x.substring (x.indexOf (y) + y.length ());
또는 당신은 전부 indexOf () 계산을 삭제하고 다만 끈의 길이를 사용할 수 있었다
x = x + y;
y = x.substring (0, x.length () - y.length ());
x = x.substring (y.length ());
2005년 10월 31일 8:53 AM에
@Robert
나는 그것을 좋아한다. 그것은 더 청결하게 본다.
2005년 11월 9일 2:08 AM에
불행히도, 정수 값을 교환하는 부호는 over- 또는 저류를 일으키는 원인이 되는 가치를 위해 실패할 것이다.
그러나, 인 당신은 사용할 수 있다 독점 또는 (xor), 바깥쪽으로 나른다 추가하십시오. 뒤에 오는 unobvious 부호는 모든 int 가치를 교환한다.
x = x ^ y;y = x ^ y;x = x ^ y;2006년 9월 28일 6:10 AM에
사용해서 1개의 상표에서 또 다른 한개에 편지를 (아래까지) 교환하기 위하여 전철 어구 문자 게임을 암호로 하는 im는 threeBottons 나가 이용하는 끈을 어떻게 일 것이는지 분류하고 부호를 숯으로 만든다? (상표 사람의 두번째 특성은 상표 2의 두번째 특성에 두어야 한다) 나는 다량 도움 감사 필요로 한다
2007년 11월 29 8:30 AM에
수입품 java.io.*;
종류 ab
{
공중 공전 공허 요점 (끈 arg []) IOException를 던진다
{
int x=6;
만약에 (x=6)
{
System.out.println (" 안녕… ");
}
}
}
질문은 이다. 밖으로 변화를 가진 이 프로그램을 실행하게 가능한 그것은 인 경우에 (x=6)
2008년 2월 26일 4:34 AM에
만약에 (x > y)
{
x = x- y;
y = y + x;
x = y - x;
}
그밖에
{
y = y - x;
x = x + y;
y = x - y;
}