Home » Interview Questions » Interviews » Story Details
Printable Version

Interview Question: Print all interleavings of two strings

by Kamal Rawat on Feb 13, 2012

If two strings are "AB" & "12" then your code should print: AB12, A1B2, A12B, 1AB2, 1A2B, 12AB
Comments: 0    Views: 579

MCN Professionals | Interview Question of the day

-----------------------------------------------------------------------------------------------------------------------------------------

Today's Question:
Given two strings, write code to print all interleavings of these strings. For example: if the two strings are
"AB" & "12", then the output should be:
AB12
A1B2
A12B
1AB2
1A2B
12AB

Note that the order of characters in the individual strings are not changed in the output.
Solution:
The logic for this is simple, we will use one character from each string and put it in the result. This function requires recursion. The main function to print interleavings will just allocate memory for the result string (If there are m & n characters in the 2 strings, then number of characters in the resultant string will be m+n)
void printInterleaving(char* a, char* b)
{
    // allocate memory to result string
    char * res = new char[strlen(a) + strlen(b) + 1];

    // Call the recursive function to print interleavings
    printInter(a, b, res, 0);

    // Delete memory allocated to result string
    delete[] res;
}
The recursive function is where the actual code will be.
void printInter(char* a, char* b, char* res, int i=0)
{
    // If both the strings are empty then print the result.
    if(*a == '\0' && *b == '\0')
    {
        res[i] = '\0';
        cout<<"\n"<<res;
    }

    // Add first character of string a to result
    if(*a != '\0')
    {
        res[i] = *a;
        printInter(a+1, b, res, i+1);
    }
   
    // Add first character of string b to result
    if(*b != '\0')
    {
        res[i] = *b;
        printInter(a, b+1, res, i+1);
    } 
}
Time Complexity: O(m!.n!).  This is the total number of interleavings for the 2 strings.
---------------------------------------------------------------------------

Interview Questions Archive:

         To see all the questions in the category Click Here...


Post a Comment
*
DevExpress PowerBuilder Web Development Windows Development Languages Software Engineering Databases
iPhone Architecture Secutiry UML & Modeling Operating Systems Networking Testing
Graphics Design Project Management Hardware Open Source Games Development Business Intelligence Visual Studio LightSwitch 2011
MonoDevelop Visual Studio 2010 ASP.NET HTML, DHTML XML PHP JavaScript
Silverlight Web Services WCF Windows Forms WPF Windows Services Dynamic Link Libraries
ActiveX COM, DCOM, ATL C# VB.NET C++ F# Java
Pascal SQL Server Oracle DB2 MS-Access Windows Servers Windows
Linux Unix SAP LINQ .NET Framework ADO.NET Reporting
Crystal Reports SQL Server Reporting Services Igenda Reports Active Reports Adobe Fireworks Arrays & Collections Hosting
Future Trends Android Windows Phone Smart Devices Business M&A Investment & Funding
Web Browsers Internet Explorer Firefox Safari Common Entrepreneurs Students
Consulting Wiki Gadgets MobileMe iCloud iOS Social Media
Facebook Twitter LinkedIn Google+ Microsoft Kinect XBox
Wii Playstation DirectX i OS OS X CIO, CTO, CEO Windows 8
Web Design Expression Blend 4 Photoshop CS5 Creative Suite 5.5 Expression Web 4 Expression Studio 4 Creative Suite® 5.5 Design
Creative Suite 5.5 Web Creative Suite 5.5 Production Startups Funding M&A Laptops Smart Phones
Desktops Cameras & Camcorders Netbooks Tablets Virtualization Microsoft Surface WordPress
Software Products Cloud Computing Current Affairs Technology TV TV
Earnings XAML E-Commerce MonoTouch Mono for Android Deals Electronics
Mobile Phone Laptop Tablet Book Computer Press Releases Reviews
Products Books Companies Windows Azure SQL Azure Interviews Mac
Web Browsers Symbian Windows Forms WPF Windows Services HTML 5 Office 365
SharePoint 2010 Exchange Server Adobe Visual Studio 2012 iPad Flex / Flash Games
Windows 9
X
 Login
Please login to submit a new post, reply and edit exiting posts, see user profiles, and access more features. If you are not a registered member, Register here.
User Id / Email:
Password:  
Forgot Password | Forgot UserName