Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def merge(a: String, b: String): String = {
- var ai = 0
- var bi = 0
- val sb = new StringBuilder(a.length + b.length)
- while (ai < a.length && bi < b.length) {
- if (a(ai) > b(bi)) {
- sb + b(bi)
- bi = bi + 1
- } else if (a(ai) < b(bi)) {
- sb + a(ai)
- ai = ai + 1
- } else if (a(ai) == b(bi)) {
- var aii = ai
- var bii = bi
- while (aii < a.length && bii < b.length && a(aii) == b(bii)) {
- aii = aii + 1
- bii = bii + 1
- }
- if (aii < a.length && bii < b.length) {
- if (a(aii) < b(bii)) {
- sb + a(ai)
- ai = ai + 1
- } else {
- sb + b(bi)
- bi = bi + 1
- }
- } else if (aii == a.length) {
- sb + b(bi)
- bi = bi + 1
- } else if (bii == b.length) {
- sb + a(ai)
- ai = ai + 1
- }
- }
- }
- while (ai < a.length) {
- sb + a(ai)
- ai = ai + 1
- }
- while (bi < b.length) {
- sb + b(bi)
- bi = bi + 1
- }
- sb.toString()
- }
Advertisement
Add Comment
Please, Sign In to add comment