private static String step4(String str) {
    if ((str.endsWith("al")) && (stringMeasure(str.substring(0, str.length() - 2)) > 1)) {
      return str.substring(0, str.length() - 2);
      // (m > 1) ANCE ->
    }
    else if ((str.endsWith("ance")) && (stringMeasure(str.substring(0, str.length() - 4)) > 1)) {
      return str.substring(0, str.length() - 4);
      // (m > 1) ENCE ->
    }
    else if ((str.endsWith("ence")) && (stringMeasure(str.substring(0, str.length() - 4)) > 1)) {
      return str.substring(0, str.length() - 4);
      // (m > 1) ER ->
    }
    else if ((str.endsWith("er")) && (stringMeasure(str.substring(0, str.length() - 2)) > 1)) {
      return str.substring(0, str.length() - 2);
      // (m > 1) IC ->
    }
    else if ((str.endsWith("ic")) && (stringMeasure(str.substring(0, str.length() - 2)) > 1)) {
      return str.substring(0, str.length() - 2);
      // (m > 1) ABLE ->
    }
    else if ((str.endsWith("able")) && (stringMeasure(str.substring(0, str.length() - 4)) > 1)) {
      return str.substring(0, str.length() - 4);
      // (m > 1) IBLE ->
    }
    else if ((str.endsWith("ible")) && (stringMeasure(str.substring(0, str.length() - 4)) > 1)) {
      return str.substring(0, str.length() - 4);
      // (m > 1) ANT ->
    }
    else if ((str.endsWith("ant")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) EMENT ->
    }
    else if ((str.endsWith("ement")) && (stringMeasure(str.substring(0, str.length() - 5)) > 1)) {
      return str.substring(0, str.length() - 5);
      // (m > 1) MENT ->
    }
    else if ((str.endsWith("ment")) && (stringMeasure(str.substring(0, str.length() - 4)) > 1)) {
      return str.substring(0, str.length() - 4);
      // (m > 1) ENT ->
    }
    else if ((str.endsWith("ent")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) and (*S or *T) ION ->
    }
    else if ((str.endsWith("sion") || str.endsWith("tion")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) OU ->
    }
    else if ((str.endsWith("ou")) && (stringMeasure(str.substring(0, str.length() - 2)) > 1)) {
      return str.substring(0, str.length() - 2);
      // (m > 1) ISM ->
    }
    else if ((str.endsWith("ism")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) ATE ->
    }
    else if ((str.endsWith("ate")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) ITI ->
    }
    else if ((str.endsWith("iti")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) OUS ->
    }
    else if ((str.endsWith("ous")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) IVE ->
    }
    else if ((str.endsWith("ive")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
      // (m > 1) IZE ->
    }
    else if ((str.endsWith("ize")) && (stringMeasure(str.substring(0, str.length() - 3)) > 1)) {
      return str.substring(0, str.length() - 3);
    }
    return str;
  }
private static String step4(String str)