DIVSTR - Divisible Strings Editorial SPOJ - Unleash-Coding-Skills

Thursday, 31 May 2018

DIVSTR - Divisible Strings Editorial SPOJ

DIVSTR - Divisible Strings


This is editorial for DIVSTR - Divisible Strings in SPOJ. The link to the problem is:

Notes:
1)Please take care of taking input there will blank lines. Choose suitable language that will take the blank line as input.
2)Additional test cases that your code must work.
eg: input : aadd
                  da
     output:  4

Logic:
You need to simply match the string two in order with string one as many times as possible just like multiplication of string.

In case if the string1 length is less than string2 length then we need to remove all the characters.

eg: input: ad
                addddd     
    output : 2

The Java code for the problem DIVSTR - Divisible Strings in SPOJ is:

import java.util.*;
import java.lang.*;
import java.io.*;
class Solution {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        int a = s.nextInt();
        String s1,s2,s3;
        s3=s.nextLine();
        for(int ii=0;ii<a;ii++)
        {
            s1=s.nextLine();
            s2=s.nextLine();
            if(s1.length()<s2.length())
            {
                System.out.println(s1.length());
                continue;
            }
            if(s2.length()==0)
            {
                System.out.println(s1.length());
                continue;
            }
            int remove=0;
            int r=0,j,fl=0;
            for(int i=0;i<s1.length();)
            {
               r=0;
              int l=0;
                for(j=r;j<s2.length()&&i<s1.length();i++)  {
                    if(s2.charAt(j)!=s1.charAt(i))   {
                        remove++;
      if(i==s1.length()-1&&j<=s2.length()-1)   {
                       remove+=l;
                   }      
                    continue;
                    }    
                      else{
                       l++;
                      }
                   if(i==s1.length()-1&&j!=s2.length()-1)  {
                       remove+=l;
                   }
                   j++;
                }
            }
            System.out.println(remove);
        }
    }
}

Another C solution for DIVSTR - Divisible Strings with a different Appoach...............

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>


int main() {

    /* Enter your code here. Read input from STDIN. Print output to STDOUT */ 
    int t,i;
    scanf("%d\n",&t);
    for(i=0;i<t;i++)
    {
      char a[10001],b[10001];
      //scanf(" %s",a);
      gets(a);
      //puts(a);
      gets(b);
      //scanf(" %s",b);
      int l1=0,l2=0,i=0,j=0,count=0;
      l1=strlen(a);
      l2=strlen(b);
      //printf("%d %d",l1,l2);
      if(l2>l1)
      {
          printf("%d\n",l1);
          continue;
      }
      else if(l2==0||l1==0)
      {
          printf("%d\n",l1);
          continue;
      }
      else
      {
          while(i<l1)
          {
              if(a[i]==b[j])
              {
                  //printf("%c %c\n",a[0],b[0]);
                  j++;
                  count++;
                  
                  if(j==l2)
                  j=j%l2;
              }
              i++;
          }
      }
      //printf(" %d ",count);
      
      count=count/l2;
      count=l1-count*l2;
      printf("%d\n",count);
      
    }
    return 0;

}

Happy Coding....................

Try this tricky problem in SPOJ available with a solution:

DIVSTR - Divisible Strings:

https://www.unleashcodingskills.com/2018/05/divstr-divisible-strings-editorial-spoj.html

Tags:
DIVSTR - Divisible Strings Editorial SPOJ,DIVSTR - Divisible Strings Editorial SPOJ editorial,
DIVSTR - Divisible Strings Editorial SPOJ,String SPOJ,DIVSTR - Divisible Strings solution SPOJ,








No comments:

Post a comment