Skip to main content

Solution to find the largest unique string in given string

There is a problem like we need to find the largest distinct string in a given string.

For example, there is a string - ababa
and the largest distinct string in it such that no two adjacent characters are same is "ababa"

Second example - we are given string - aaaaac
so largest distinct string is - "ca"

How to find the solution for this

Solution :

We need to create a vertical array for this - character by character

Like a string is given - "abccdderteerveedsseqwsaxztybb"

So we will create a vertical array as below -

a
b
cc
 d
  d
  e
  r
  t
  ee
   r
   v
   ee
    d
    ss
     e
     q
     w
     s
     a
     x
     z
     t
     y
     bb


Whenever there is a repeated word we need to put that in same line else to next line.
So we found that there 6 vertical lines created and count in 4 vertical lines are -

1st line - 3
2nd line - 2
3rd line - 5
4th line - 3
5th line - 10
6th line - 1


So you can see that in 5th line there are maximum characters, hence the longest string with no two adjacent characters are same is in 5th line i.e. seqwsaxztyb



a
b
cc
 d
  d
  e
  r
  t
  ee
   r
   v
   ee
    d
    ss
     e
     q
     w
     s
     a
     x
     z
     t
     y
     bb

and in the complete string - abccdderteerveedsseqwsaxztybb

So there is the solution for this famous problem.

Comments

Popular posts from this blog

Export Doc,Access,Image,CSV,Excel,Pdf,XML,HTML,Text,Print of Gridview in Asp.net

First import itextsharp.dll in the solution and use three namespces (basically for pdf) using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.html.simpleparser;          Then Use the following code :- on each button  click  protected void Page_Load(object sender, EventArgs e)         {             if (!Page.IsPostBack)             {                 BindGridDetails(GridView1);             }         }                 protected DataTable BindGridDetails(GridView GridView1)         {             DataTable dt = new DataTable();             dt.Columns.Add("Student_ID", typeof(Int32));             dt.Columns.Add("Student_Name", typeof(string));             dt.Columns.Add("Education", typeof(string));             dt.Columns.Add("City", typeof(string));             DataRow dtrow = dt.NewRow();             dtrow["Student_ID"] = 1;             dtrow["Student_Name"] = "Musakkhir";   

Ip Sec Internet Security Basic Structure

The IPsec suite is an  open standard . IPsec uses the following  protocols  to perform various functions: Authentication Headers (AH)  provide connectionless  integrity  and data origin  authentication  for IP  datagrams  and provides protection against  replay attacks . Encapsulating Security Payloads (ESP)  provide  confidentiality , data-origin  authentication , connectionless  integrity , an anti-replay service (a form of partial sequence integrity), and limited traffic-flow confidentiality. Security Associations (SA)  provide the bundle of algorithms and data that provide the parameters necessary to AH and/or ESP operations. The  Internet Security Association and Key Management Protocol  (ISAKMP) provides a framework for authentication and key exchange, with actual authenticated keying material provided either by manual configuration with pre-shared keys,  Internet Key Exchange  (IKE and IKEv2),  Kerberized Internet Negotiation of Keys  (KINK), or IPSECKEY  DNS records .

Advent of code 2022 day 22 part 1

  function main(input, input1) {     let grid = input.split( '\n' );     grid.shift();     // only in big input     for ( let i = 0 ; i < 100 ; i++) {         grid[i] = '                                                  ' + grid[i];     }     //console.log(grid[100])     grid = grid.map(x => x.split( '' ))     // find first left top allowed     let temppos = - 1 ;     grid[ 0 ].forEach((element, i) => {         if (temppos == - 1 && element == '.' ) {             temppos = i;         }     });     let initpos = new pos(temppos, 0 )     // console.log(initpos)     // make grid equal shape     let maxlength = 0 ;     grid.forEach(el => {         if (el.length > maxlength) {             maxlength = el.length         }     })     console.log(maxlength)     grid.forEach(el => {         if (el.length < maxlength) {             let diff = maxlength - el.length;             while (diff > 0 ) {                 di