fork download
  1. public class Main
  2. {
  3. public static void main(String[] args) {
  4. int cnt = 111111111;
  5.  
  6. long start = System.currentTimeMillis();
  7. for(long i = 1; i < cnt; i++) {
  8. int[] res = digitizeStr(i);
  9. }
  10. long finish = System.currentTimeMillis();
  11. long timeElapsed = finish - start;
  12. System.out.println("digitizeStr: " + timeElapsed);
  13.  
  14. start = System.currentTimeMillis();
  15. for(long i = 1; i < cnt; i++) {
  16. int[] res = digitizeStr2(i);
  17. }
  18. finish = System.currentTimeMillis();
  19. timeElapsed = finish - start;
  20. System.out.println("digitizeStr2 (no StringBuilder): " + timeElapsed);
  21.  
  22. start = System.currentTimeMillis();
  23. for(long i = 1; i < cnt; i++) {
  24. int[] res = digitize(i);
  25. }
  26. finish = System.currentTimeMillis();
  27. timeElapsed = finish - start;
  28. System.out.println("Division by 10: " + timeElapsed);
  29. }
  30.  
  31. private static int[] digitizeStr(long n) {
  32. String s = String.valueOf(n);
  33. StringBuilder builder = new StringBuilder(s).reverse();
  34. String result = String.valueOf(builder);
  35. int[] array = new int[result.length()];
  36. for(int i = 0; i < result.length(); i++) {
  37. array[i] = result.charAt(i) - '0';
  38. }
  39. return array;
  40. }
  41.  
  42. private static int[] digitize(long number) {
  43. int length = (int)Math.log10(number) + 1;
  44. int[] digits = new int[length];
  45. for(int i = 0; i < length; i++) {
  46. long m = number % 10;
  47. number = (number - m) / 10;
  48. digits[i] = (int)m;
  49. }
  50. return digits;
  51. }
  52.  
  53. static int[] digitizeStr2(long l) {
  54. String value = String.valueOf(l);
  55. int[] array = new int[value.length()];
  56.  
  57. for (int i = value.length() - 1, j = 0; i >= 0; i--, j++) {
  58. array[j] = Integer.parseInt(value.substring(i, i + 1));
  59. }
  60.  
  61. return array;
  62. }
  63. }
  64.  
Time limit exceeded #stdin #stdout 5s 116920KB
stdin
Standard input is empty
stdout
Standard output is empty