Find first repeating Char in String Given a string, find the first repeating character in it. 
  
  Examples:
  
  
  firstUnique("Vikrant") → None
  firstUnique("VikrantVikrant") → Some(V)
  


Scala implementation:



object FirstUniqueChar extends App {
  def firstUnique(s: String): Option[Char] = {
   val countMap =  (s groupBy (c=&gt;c)) mapValues(_.length)
    def checkOccurence(s1: String ): Option[Char] = {
      if (countMap(s1.head) &gt; 1) Some(s1.head)
      else if (s1.length == 1) None
      else checkOccurence(s1.tail)
    }
    checkOccurence(s)
  }
  println(firstUnique("abcdebC"))
  println(firstUnique("abcdef"))
}


I also have a followup question. What is the recommended way if I do not want to solve this problem with recursion? Instead of using the checkOccurence method I can traverse through the string and break when I find the first element with a count more than 1. But that will require a break, which is discouraged in Scala.
Your checkOccurrence(s) is just a clumsy way to write s.find(countMap(_) > 1).

You can significantly simplify the solution by taking advantage of .distinct.

def firstUnique(s: String): Option[Char] =
  s.zipAll(s.distinct, '\u0000', '\u0000')
   .collectFirst({ case ab if ab._1 != ab._2 =&gt; ab._1 })