Skip to main content

Interview question which I faced during FAANG interview


    Programming question given to me at leetcode.



     Given two strings representing very large integer numbers ("123" , "30") return a string      representing the sum of the two numbers ("153").


    The above question can be rephrased as:-

     

     Add two numbers represented by strings

     

     Sum of two large numbers

     

     Add Two Very Large Number (out of range)

     

     How to add two string numbers

     

     



Solution in Swift programming language:



func add(first: String, second: String) {

        var input1 = first

        var input2 = second

        

        var firstArray = Array(first)

        var secondArray = Array(second)

        

        //both inputs should have same number of characters

        var differenceOfCharacter = 0

        if firstArray.count > secondArray.count {

            differenceOfCharacter = firstArray.count - secondArray.count


            (0..<differenceOfCharacter).forEach { (_) in

                input2 = "0" + input2

            }

        } else {

            differenceOfCharacter = secondArray.count - firstArray.count

            

            (0..<differenceOfCharacter).forEach { (_) in

                input1 = "0" + input1

            }

        }

        

        firstArray = Array(input1)

        secondArray = Array(input2)

        

        var reminder = 0

        var sum = 0

        var sumString = ""

        

        for (index,_) in firstArray.enumerated().reversed() {

            let a = firstArray[index].wholeNumberValue ?? 0

            let b = secondArray[index].wholeNumberValue ?? 0

            

            sum = (a + b + reminder) % 10

            reminder = (a + b) / 10

            sumString = "\(sum)" + sumString

        }

        print(sumString)

        

    }

Comments

Popular posts from this blog

How to kill/exit iOS application on a button click programmatically

I had been practising below code to kill an iOS application. exit(0); But last week, my application was rejected by app store due to following reason: We found that your app includes a UI control for quitting the app. This is not in compliance with the iOS Human Interface Guidelines, as required by the App Store Review Guidelines . To avoid any such rebuff, suspend the application using following code snippet. UIApplication.shared.perform(#selector(NSXPCConnection.suspend)) Good news is that now my application is passed the  iOS Human Interface Guidelines and live on app store.

Return multiple values from a function in objective C

We can return tuples in swift as follows:- func getData () -> ( Int , Int , Int ) { //...code here return ( hour , minute , second ) } You can't do that in objective-c. Best option is using parameters by reference . Something like this. - ( void ) getHour :( int *) hour minute :( int *) minute second :( int *) second { * hour = 1 ; * minute = 2 ; * second = 3 ; } And use it like this. int a , b , c ; [ self getHour :& a minute :& b second :& c ]; NSLog (@ "%i, %i, %i" , a , b , c );