Guest User

Untitled

a guest
Nov 27th, 2016
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.09 KB | None | 0 0
  1.   def merge(a: String, b: String): String = {
  2.     var ai = 0
  3.     var bi = 0
  4.     val sb = new StringBuilder(a.length + b.length)
  5.     while (ai < a.length && bi < b.length) {
  6.       if (a(ai) > b(bi)) {
  7.         sb + b(bi)
  8.         bi = bi + 1
  9.       } else if (a(ai) < b(bi)) {
  10.         sb + a(ai)
  11.         ai = ai + 1
  12.       } else if (a(ai) == b(bi)) {
  13.         var aii = ai
  14.         var bii = bi
  15.         while (aii < a.length && bii < b.length && a(aii) == b(bii)) {
  16.           aii = aii + 1
  17.           bii = bii + 1
  18.         }
  19.         if (aii < a.length && bii < b.length) {
  20.           if (a(aii) < b(bii)) {
  21.             sb + a(ai)
  22.             ai = ai + 1
  23.           } else {
  24.             sb + b(bi)
  25.             bi = bi + 1
  26.           }
  27.         } else if (aii == a.length) {
  28.           sb + b(bi)
  29.           bi = bi + 1
  30.         } else if (bii == b.length) {
  31.           sb + a(ai)
  32.           ai = ai + 1
  33.         }
  34.  
  35.       }
  36.     }
  37.     while (ai < a.length) {
  38.       sb + a(ai)
  39.       ai = ai + 1
  40.     }
  41.     while (bi < b.length) {
  42.       sb + b(bi)
  43.       bi = bi + 1
  44.     }
  45.     sb.toString()
  46.   }
Advertisement
Add Comment
Please, Sign In to add comment