fork download
  1. /* package whatever; // don't place package name! */
  2.  
  3. import java.util.*;
  4. import java.lang.*;
  5. import java.io.*;
  6.  
  7. /* Name of the class has to be "Main" only if the class is public. */
  8. class Ideone
  9. {
  10. public static void main (String[] args) throws java.lang.Exception
  11. {
  12. String[] a1 = { "ab" };
  13. String[] a2 = { "a😷" };
  14.  
  15. int max = mxdiflg( a1, a2 );
  16. System.out.println( "Result of mxdiflg: " + max );
  17.  
  18. int max2 = usingCodePoints( a1, a2 );
  19. System.out.println( "Result of usingCodePoints: " + max2 );
  20. }
  21.  
  22. // Copied from Stack Overflow Answer by WJS.
  23. // https://stackoverflow.com/a/71770145/642706
  24. public static int mxdiflg(String[] a1, String[] a2) {
  25. int maxa1 = 0, mina1 = Integer.MAX_VALUE, maxa2 = 0,
  26. mina2 = Integer.MAX_VALUE;
  27.  
  28. // find max and
  29. for (String s : a1) {
  30. int len = s.length();
  31. maxa1 = Math.max(maxa1, len);
  32. mina1 = Math.min(mina1, len);
  33. }
  34. for (String s : a2) {
  35. int len = s.length();
  36. maxa2 = Math.max(maxa2, len);
  37. mina2 = Math.min(mina2, len);
  38. }
  39.  
  40. return Math.max(maxa1, maxa2) - Math.min(mina1, mina2);
  41. }
  42.  
  43. public static int usingCodePoints(String[] a1, String[] a2) {
  44. int maxa1 = 0, mina1 = Integer.MAX_VALUE, maxa2 = 0,
  45. mina2 = Integer.MAX_VALUE;
  46.  
  47. // find max and
  48. for (String s : a1) {
  49. int len = Math.toIntExact( s.codePoints().count() ) ;
  50. maxa1 = Math.max(maxa1, len);
  51. mina1 = Math.min(mina1, len);
  52. }
  53. for (String s : a2) {
  54. int len = Math.toIntExact( s.codePoints().count() ) ;
  55. maxa2 = Math.max(maxa2, len);
  56. mina2 = Math.min(mina2, len);
  57. }
  58.  
  59. return Math.max(maxa1, maxa2) - Math.min(mina1, mina2);
  60. }
  61.  
  62. }
Success #stdin #stdout 0.11s 48164KB
stdin
Standard input is empty
stdout
Result of mxdiflg: 1
Result of usingCodePoints: 0