title: Lexicographically Next String
signature: pub fn lexicographically_next_string(s: String) -> String {
test_code: use std::collections::HashMap;
  use std::collections::HashSet;
  use std::cmp::*;
  use std::collections::*;
  use std::fmt::*; 
  
  
  // SOLUTION CODE
  // ============================================
  PLACEHOLDER_CODE_BODY
  
  // TESTING CODE 
  // ============================================
  pub fn validate_solution(actual: String, expected: String)->bool{
  return actual==expected
  }
  pub fn driver(s: String, expected: String)->String{
      if validate_solution(PLACEHOLDER_FN_NAME(s), expected) {
        return "PASSED".to_string();
      };
      return "FAILED".to_string();
  
  }
  
  fn main() {
      println!("TEST-0...{}", driver(
        "amKIRzPiqLTIy".to_string(), 
        "amKIRzPiqLTIz".to_string()
      ));
      
      println!("TEST-1...{}", driver(
        "68".to_string(), 
        "69".to_string()
      ));
      
      println!("TEST-2...{}", driver(
        "100".to_string(), 
        "110".to_string()
      ));
      
      println!("TEST-3...{}", driver(
        "f".to_string(), 
        "g".to_string()
      ));
      
      println!("TEST-4...{}", driver(
        "802205375".to_string(), 
        "802206375".to_string()
      ));
      
      println!("TEST-5...{}", driver(
        "0111".to_string(), 
        "0211".to_string()
      ));
      
      println!("TEST-6...{}", driver(
        "GRjRYIvYwgua".to_string(), 
        "GRjRYIvYwgub".to_string()
      ));
      
      println!("TEST-7...{}", driver(
        "8139910006809".to_string(), 
        "813:910006809".to_string()
      ));
      
      println!("TEST-8...{}", driver(
        "100101".to_string(), 
        "200101".to_string()
      ));
      
      println!("TEST-9...{}", driver(
        "rw".to_string(), 
        "rx".to_string()
      ));
      
  }
source_py: def lexicographically_next_string(s):
      if (s == ' '):
          return 'a'
      i = (len(s) - 1)
      while ((s[i] == 'z') and (i >= 0)):
          i -= 1
      if (i == (- 1)):
          s = (s + 'a')
      else:
          s = s.replace(s[i], chr((ord(s[i]) + 1)), 1)
      return s
source_cpp: string lexicographically_next_string(string s) {
    if ( s == "" ) return "a";
    int i = s . length ( ) - 1;
    while ( s [ i ] == 'z' && i >= 0 ) i --;
    if ( i == - 1 ) s = s + 'a';
    else s [ i ] ++;
    return s;
  }