- 1
- 2
- 3
- 4
public boolean intersects(final Range range) {
return (((range.indexFrom >= this.indexFrom) ? range.indexFrom : this.indexFrom) <=
((range.indexTo <= this.indexTo) ? range.indexTo : this.indexTo));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+147
public boolean intersects(final Range range) {
return (((range.indexFrom >= this.indexFrom) ? range.indexFrom : this.indexFrom) <=
((range.indexTo <= this.indexTo) ? range.indexTo : this.indexTo));
}
проверка пересечения двух диапазонов
подсчитайте кол-во действий?
2)Все варианты:
abcdefghijkl
this: cdefghij
range: cdefghij
defghi
cdef
fghij
bcdef
fghijk
bcdefghij
cdefghijk
bcdefghijk
3) Вернуть область пересечения:
|---| - this
|+++| - range
# - whitespace
----------------------------
#######|-----|
##|+++|
----------------------------
###|---|
#######|+++|
-----------------------------
#####|-------|
###|++++++++|
------------------------------
intersects? false intersection:null
union:[2:2][0:0]
exclusion:[2:2][0:0]
TESTING [0:3] and[2:4]:
intersects? true intersection:[2:3]
union:[0:4]
exclusion:[0:1][4:4]
TESTING [0:3] and[1:2]:
intersects? true intersection:[1:2]
union:[0:3]
exclusion:[3:3][0:0]
TESTING [2:4] and[0:2]:
intersects? true intersection:[2:2]
union:[0:4]
exclusion:[3:4][0:1]