2016-03-12 6 views
-1

Java: я хочу сравнить 2 массива, я хочу узнать, будут ли первые n записей в массиве s до первых n записей в массиве t в иными словами, если n = 4, то ('b''''n''a''r''y') меньше ('b'''''''''''d'). потому что четвёртая элемент двоичного «а» приходит до 4-го элемента привязки «D» я действительно борюсь с этимПроверяет, не содержит ли n элементов в одном массиве до n элементов в другом массиве

@Override 
public boolean lessThan(char[] s, char[] t, int n) { 



    for (int i = 0; i < n; i ++){ 


     if (s[i] > t[i]){ 

      return true; 

     } 


    } 

    return false; 

} 
+0

с [s.length-1] <т [0] будет работать. потому что n-я запись s предшествует первой записи t [0]. Нет? – jackjop

+0

хорошо если отсортировано – jackjop

+0

Непонятный вопрос. –

ответ

0

Проверка ASCII символом каждого полукокс должны работать.

public boolean lessThan(char[] s, char[] t, int n) { 
     boolean isLess = true; 
     for (int i = 0; i < n; i++) { 
      if((int) t[i] > (int) s[i]){ 
       isLess = false; 
      } 
     } 
     return isLess; 
    } 
+0

неверно, этот код не определяет, будут ли первые n элементов массива s меньше, чем первые n элементов массива t в порядке словаря –

+0

Можете привести пример проблемы. Я не получаю это. –

+0

уверен, что если первые n элементов массива s меньше, чем первые n элементов массива t в порядке словаря, тогда метод должен возвращать true. Например, «двоичный» в массиве s меньше, чем «bind» в массиве t, потому что четвертая буква в «двоичном», которая является «a», предшествует четвертой букве в «bind», которая является «d в порядке словаря» и следовательно, первые n элементов в s меньше, чем первые n элементов в t, и он должен возвращать true –

0

Построить струнные и сравнить их

return new String(s, 0, n).compareTo(new String(t, 0, n) < 0; 
+0

Большое спасибо Энди, я не могу сказать вы, насколько эта строка кода помогла мне! –

Смежные вопросы