private static String solution ( String first , String second ) {
  char [ ] fArr = first . toCharArray ( ) ;
  char [ ] sArr = second . toCharArray ( ) ;
  int i = fArr . length - 1 ;
  while ( i >= 0 ) {
    if ( fArr [ i ] == 'z' ) {
      fArr [ i ] = 'a' ;
    }
    else {
      fArr [ i ] ++ ;
      break ;
    }
    i -- ;
  }
  return test ( String . valueOf ( fArr ) , String . valueOf ( sArr ) ) ? String . valueOf ( fArr ) : "No such string" ;
}

private static String solution ( String first , String second ) { char [ ] fArr = first . toCharArray ( ) ; char [ ] sArr = second . toCharArray ( ) ; int i = fArr . length - 1 ; while ( i >= 0 ) { if ( fArr [ i ] == ' z ' ) { fArr [ i ] = ' a ' ; } else { fArr [ i ] ++ ; break ; } i -- ; } return test ( String . valueOf ( fArr ) , String . valueOf ( sArr ) ) ? String . valueOf ( fArr ) : " No ▁ such ▁ string " ; }
(method_declaration (modifiers) type: (type_identifier) name: (identifier) parameters: (formal_parameters (formal_parameter type: (type_identifier) name: (identifier)) (formal_parameter type: (type_identifier) name: (identifier))) body: (block (local_variable_declaration type: (array_type element: (integral_type) dimensions: (dimensions)) declarator: (variable_declarator name: (identifier) value: (method_invocation object: (identifier) name: (identifier) arguments: (argument_list)))) (local_variable_declaration type: (array_type element: (integral_type) dimensions: (dimensions)) declarator: (variable_declarator name: (identifier) value: (method_invocation object: (identifier) name: (identifier) arguments: (argument_list)))) (local_variable_declaration type: (integral_type) declarator: (variable_declarator name: (identifier) value: (binary_expression left: (field_access object: (identifier) field: (identifier)) right: (decimal_integer_literal)))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (decimal_integer_literal))) body: (block (if_statement condition: (parenthesized_expression (binary_expression left: (array_access array: (identifier) index: (identifier)) right: (character_literal))) consequence: (block (expression_statement (assignment_expression left: (array_access array: (identifier) index: (identifier)) right: (character_literal)))) alternative: (block (expression_statement (update_expression (array_access array: (identifier) index: (identifier)))) (break_statement))) (expression_statement (update_expression (identifier))))) (return_statement (ternary_expression condition: (method_invocation name: (identifier) arguments: (argument_list (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (identifier))) (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (identifier))))) consequence: (method_invocation object: (identifier) name: (identifier) arguments: (argument_list (identifier))) alternative: (string_literal)))))