1. Java / Говнокод #4775

    +67

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    package bytestring;
    
    public class Main {
    
        public static void main(String[] args) {
            String source = new String("A ya sdelal etu hren s perevorotom stroki s ispolzovaniem bayta");
            byte bytes[] = source.getBytes();
    
            bytes = reverse(bytes);
    
            String destination = new String(bytes);
            System.out.println(destination);
        }
    
        private static void switchBytes(byte[] array, int a, int b) {
            byte t = array[a];
            array[a] = array[b];
            array[b] = t;
        }
    
        public static byte[] reverse(byte[] bytes) {
            int i, j;
            int first, last;
            int length = bytes.length;
    
            //Переворачиваем всю строку
            for(i = 0; i < length / 2; i++)
                switchBytes(bytes, i, length - i - 1);
    
            //Переворачиваем каждое слово строки
            first = 0;
            for(i = 1; i <= length; i++)
                if(i == length || bytes[i] == ' ') {
                    last = i - 1;
                    for(j = first; j <= first + (last - first) / 2; j++)
                        switchBytes(bytes, j, first + last - j);
                    first = i + 1;
                }
            
            return bytes;
        }
    }

    Запостил: hedgecrab, 28 Ноября 2010

    Комментарии (8) RSS

    Добавить комментарий