ЙАЖА / Говнокод #26851 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
private static final String CITY_PREFIX = "г.";
private static final Map<String, String> CITIES = new HashMap<>() {
  {
    put("В.Новгород", "Великий Новгород");
    put("Н.Новгород", "Нижний Новгород");
    put("В. Новгород", "Великий Новгород");
    put("Н. Новгород", "Нижний Новгород");
    put("Великий Новгород", "Великий Новгород");
    put("Нижний Новгород", "Нижний Новгород");
    put("Петербург", "Санкт-Петербург");
    put("Челны", "Набережные Челны");
    put("Уренгой", "Новый Уренгой");
    put("ПсковS", "Псков");
  }
};
private static final Map<String, String> CITIES_WITH_PREFIX = new HashMap<>() {
  {
    put("г.Пушкино", "Пушкино");
  }
};

ну просто офигенный мапинг

varg varg, (Updated )

Комментарии (48, +48)

ЙАЖА / Говнокод #26836 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
package com.company;

public class Main {

    public static void main(String[] args) {
        int answer = 0;

        for (int i = 100; i < 1000; i++){
            for (int j = 100; j < 1000; j++){
                int result = i * j;

                String str = String.valueOf(result); //convert
                String revers = new StringBuffer(str).reverse().toString(); //revers
                int newb = Integer.parseInt(revers); //convert

                if (newb == result){
                    int answer001 = result;


                    if (answer001 > answer) answer = answer001;
                }

            }
        }
        System.out.println(answer);

    }

}

реализация четвёртой задачки из проекта эйлера

warzon131 warzon131, (Updated )

Комментарии (279, +279)

ЙАЖА / Говнокод #26825 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  43. 43
System.out.println("\nNames in alphabetical order: ");
             if(name1.compareTo(name2) > 0) {
                        if(name2.compareTo(name3) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name3,
                                                name2,
                                                name1); //cba 2
                        }
                        else if(name3.compareTo(name2) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name2,
                                                name3,
                                                name1); //bca 3
                        }
                }
                else if(name2.compareTo(name1) > 0) {
                        if(name1.compareTo(name3) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name3,
                                                name1, 
                                                name2); //cab 1
                        }
                        else if(name3.compareTo(name1) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name1,
                                                name3,
                                                name2); //acb 5
                        }
                }//bac i abc
                else if(name3.compareTo(name1) > 0) {
                        if(name1.compareTo(name2) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name2,
                                                name1,
                                                name3);
                        }
                        else if(name2.compareTo(name1) > 0) {
                                System.out.printf("%s\n%s\n%s\n",
                                                name1,
                                                name2,
                                                name3);
                        }
                }

Снова пытался отсортировать три строки по алфавиту.
У меня опять получилась вместо нескольких строк простыня.
Что со мной не так?
Но, по крайней мере, она работает как надо.

marincv marincv, (Updated )

Комментарии (55, +55)

ЙАЖА / Говнокод #26818 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. 86
  87. 87
  88. 88
  89. 89
  90. 90
  91. 91
  92. 92
  93. 93
  94. 94
  95. 95
  96. 96
  97. 97
  98. 98
  99. 99
  100. 100
System.out.println("Names in alphabetical order: ");
		
		if(a < b) {
			if(a < c) {
				System.out.println(name1);
				if(b == c) {
					b = name2.charAt(1);
					c = name3.charAt(1);
				}
				if(c < b) {
				   System.out.println(name3);
				   System.out.println(name2);//acb
				}
				if(b < c) {
					System.out.println(name2);
				        System.out.println(name3);//abc
				}
				if(b == c) {
					System.out.println(name2);
					System.out.println(name3);//abc
				}
			}
			if(a > c) {
				System.out.println(name3);
				System.out.println(name1);
				System.out.println(name2);//cab
			}
			if(a == c) {
				System.out.println(name1);
				System.out.println(name3);
				System.out.println(name2);//acb
			}
		}
		if(a == b) {
			if(a <= c) {
				System.out.println(name1);
				System.out.println(name2);
				System.out.println(name3);//abc
			}
			if(a > c) {
				System.out.println(name3);
				System.out.println(name1);
				System.out.println(name2);//cab
			}
		}
		if(c < b) {
			if(b < a) {
				System.out.println(name3);
				System.out.println(name2);
				System.out.println(name1);//cba
			}
			if(b == a) {
				System.out.println(name3);
				System.out.println(name1);
				System.out.println(name2);//cab
			}	
		}
		if(c == b) {
			if(a < c) {
				System.out.println(name1);
				System.out.println(name2);
				System.out.println(name3);//abc
			}
			if(a > c) {
				System.out.println(name3);
				System.out.println(name2);
				System.out.println(name1);//cba
					
			}
			if(a == c) {
				System.out.println(name1);
				System.out.println(name2);
				System.out.println(name3);//abc
			}
		}
		if(b < a) {
			if(a <= c) {
				System.out.println(name2);
				System.out.println(name1);
				System.out.println(name3);//bac
			}
			if(c < a) {
				System.out.println(name2);
				System.out.println(name3);
				System.out.println(name1);//bca
			}
		}
		if(b == a) {
			if(c < a) {
				System.out.println(name3);
				System.out.println(name1);
				System.out.println(name2);//cab
			}
			if(a <= c) {
				System.out.println(name1);
				System.out.println(name2);
				System.out.println(name3);//abc
			}

		}

Names in alphabetical order

marincv marincv, (Updated )

Комментарии (7, +7)

ЙАЖА / Говнокод #26808 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
import java.util.concurrent.TimeUnit;
import java.util.regex.Pattern;
import static java.lang.System.*;
import static java.util.concurrent.TimeUnit.NANOSECONDS;

public class Rep implements CharSequence
{
    String str = null;
    int    len;
    char  base;

    public Rep(char x, int count)
    {
        this.len  = count;
        this.base = x;
    }

    @Override
    public int length()
    {
        return len;
    }

    @Override
    public char charAt(int index)
    {
        return base;
    }

    @Override
    public CharSequence subSequence(int beginIndex, int endIndex)
    {
        if (beginIndex < 0) {
            throw new StringIndexOutOfBoundsException(beginIndex);
        }
        if (endIndex > this.len) {
            throw new StringIndexOutOfBoundsException(endIndex);
        }
        int subLen = endIndex - beginIndex;
        if (subLen < 0) {
            throw new StringIndexOutOfBoundsException(subLen);
        }
        return ((beginIndex == 0) && (endIndex == this.len)) ? this
                : new Rep(this.base, subLen);
    }

    @Override
    public String toString()
    {
        return null!=str ?  str : (this.str  = new String(new char[]{base}).repeat(len));
    }

    public static void main(String... args)
    {
        long ns = 0L;
        Pattern lazy   = Pattern.compile("^(11+?)\\1+$");
        Pattern greedy = Pattern.compile("^(11+?)\\1+$");
        ns=nanoTime();  lazy  .matcher(new Rep('1',100160079)).matches(); out.println( NANOSECONDS.toMillis(nanoTime()-ns));
        ns=nanoTime();  greedy.matcher(new Rep('1',100160079)).matches();out.println( NANOSECONDS.toMillis(nanoTime()-ns));
        ns=nanoTime();  greedy.matcher(new Rep('1',1165139)).matches();out.println( NANOSECONDS.toMillis(nanoTime()-ns));

        ns=nanoTime(); "1".repeat( 100160079 ).matches("^(11+?)\\1+$") ; out.println("Lazy String:"+ NANOSECONDS.toMillis(nanoTime()-ns));
        ns=nanoTime(); "1".repeat( 100160079 ).matches("^(11+)\\1+$") ; out.println("Greedy String:"+ NANOSECONDS.toMillis(nanoTime()-ns)); 
    }

}

Так как в «Йажа» регулярки работают не на строках, а на интерфейсе CharSequence https://docs.oracle.com/javase/8/docs/api/index.html?java/lang/CharSequence.html

Решил что можно сделать тупую реализацию CharSequence для строк из повторяющегося символа.

https://ideone.com/8eYFU7

3.14159265 3.14159265, (Updated )

Комментарии (81, +81)

ЙАЖА / Говнокод #26797 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
List<UserScoreDTO> userScores = users.stream()
                .map((u) -> ScoreUtils.aggregateUserAndFlagData(u, maxTestScore))
                .collect(toList());

return userScores.stream();

Collect to List<UserScoreDTO> then stream the list to Stream<UserScoreDTO>

johann johann, (Updated )

Комментарии (4, +4)