Maksimum sayıda benzersiz karakter içeren dize
Bir dize dizisi verildiğinde görev, dizeyi şu şekilde yazdırmaktır: maksimum sayı benzersiz karakterlerden oluşuyor.
Not:
- Stringler küçük harf karakterlerden oluşur.
- Birden fazla dize varsa bunlardan herhangi birini yazdırın.
Örnekler:
Giriş: arr[] = ['abc' 'geeksforgeeks' 'gfg' 'kod']
Çıkış: "inekler için inekler"
Açıklama: 'abc'nin 3 benzersiz karakteri var 'geeksforgeeks'in 7 benzersiz karakteri var
'gfg' 3 benzersiz karaktere sahiptir 'kod' 4 benzersiz karaktere sahiptir.Giriş: arr[] = ['merhaba' 'dünya' 'programlama' 'zebra']
Çıkış: 'programlama'
Açıklama: 'programlama' maksimum 8 benzersiz karaktere sahiptir.
Yaklaşmak:
Buradaki fikir, bu benzersiz karakterleri sayan bir boole dizisi kullanarak ve hangi dizenin şu ana kadar en yüksek sayıyı sağladığını takip ederek, içinde küçük harflerin göründüğü her dize takibini sistematik olarak incelemektir.
Adım adım yaklaşım:
- Koleksiyondaki her dizeyi yineleyin.
- Her dize için hangi harflerin mevcut olduğunu işaretlemek amacıyla bir boole dizisi kullanın.
- Kaç farklı harfin mevcut olarak işaretlendiğini sayın.
- Bu sayı önceki maksimumu aşarsa maksimumu güncelleyin ve bu dizenin konumunu hatırlayın.
- Bulunan en yüksek sayıda benzersiz karaktere sahip dizeyi döndürün.
// C++ code to find string with maximum // number of unique characters. #include using namespace std ; // Function to find string with // maximum number of unique characters. string maxString ( vector < string > & arr ) { int n = arr . size (); int index = -1 maxCnt = 0 ; for ( int i = 0 ; i < n ; i ++ ) { vector < bool > map ( 26 false ); for ( int j = 0 ; j < arr [ i ]. length (); j ++ ) { map [ arr [ i ][ j ] - 'a' ] = true ; } // Find number of unique char int cnt = 0 ; for ( int j = 0 ; j < 26 ; j ++ ) { if ( map [ j ] == true ) cnt ++ ; } // If unique count is greater if ( cnt > maxCnt ) { maxCnt = cnt ; index = i ; } } return arr [ index ]; } int main () { vector < string > arr = { 'abc' 'geeksforgeeks' 'gfg' 'code' }; cout < < maxString ( arr ); return 0 ; }
Java // Java code to find string with maximum // number of unique characters. import java.util.* ; class GfG { // Function to find string with // maximum number of unique characters. static String maxString ( String [] arr ) { int n = arr . length ; int index = - 1 maxCnt = 0 ; for ( int i = 0 ; i < n ; i ++ ) { boolean [] map = new boolean [ 26 ] ; for ( int j = 0 ; j < arr [ i ] . length (); j ++ ) { map [ arr [ i ] . charAt ( j ) - 'a' ] = true ; } // Find number of unique char int cnt = 0 ; for ( int j = 0 ; j < 26 ; j ++ ) { if ( map [ j ] == true ) cnt ++ ; } // If unique count is greater if ( cnt > maxCnt ) { maxCnt = cnt ; index = i ; } } return arr [ index ] ; } public static void main ( String [] args ) { String [] arr = { 'abc' 'geeksforgeeks' 'gfg' 'code' }; System . out . println ( maxString ( arr )); } }
Python # Python code to find string with maximum # number of unique characters. # Function to find string with # maximum number of unique characters. def maxString ( arr ): n = len ( arr ) index = - 1 maxCnt = 0 for i in range ( n ): map = [ False ] * 26 for j in range ( len ( arr [ i ])): map [ ord ( arr [ i ][ j ]) - ord ( 'a' )] = True # Find number of unique char cnt = sum ( 1 for j in range ( 26 ) if map [ j ]) # If unique count is greater if cnt > maxCnt : maxCnt = cnt index = i return arr [ index ] if __name__ == '__main__' : arr = [ 'abc' 'geeksforgeeks' 'gfg' 'code' ] print ( maxString ( arr ))
C# // C# code to find string with maximum // number of unique characters. using System ; class GfG { // Function to find string with // maximum number of unique characters. static string maxString ( string [] arr ) { int n = arr . Length ; int index = - 1 maxCnt = 0 ; for ( int i = 0 ; i < n ; i ++ ) { bool [] map = new bool [ 26 ]; for ( int j = 0 ; j < arr [ i ]. Length ; j ++ ) { map [ arr [ i ][ j ] - 'a' ] = true ; } // Find number of unique char int cnt = 0 ; for ( int j = 0 ; j < 26 ; j ++ ) { if ( map [ j ] == true ) cnt ++ ; } // If unique count is greater if ( cnt > maxCnt ) { maxCnt = cnt ; index = i ; } } return arr [ index ]; } static void Main () { string [] arr = { 'abc' 'geeksforgeeks' 'gfg' 'code' }; Console . WriteLine ( maxString ( arr )); } }
JavaScript // JavaScript code to find string with maximum // number of unique characters. // Function to find string with // maximum number of unique characters. function maxString ( arr ) { let n = arr . length ; let index = - 1 maxCnt = 0 ; for ( let i = 0 ; i < n ; i ++ ) { let map = new Array ( 26 ). fill ( false ); for ( let j = 0 ; j < arr [ i ]. length ; j ++ ) { map [ arr [ i ]. charCodeAt ( j ) - 'a' . charCodeAt ( 0 )] = true ; } // Find number of unique char let cnt = 0 ; for ( let j = 0 ; j < 26 ; j ++ ) { if ( map [ j ] === true ) cnt ++ ; } // If unique count is greater if ( cnt > maxCnt ) { maxCnt = cnt ; index = i ; } } return arr [ index ]; } let arr = [ 'abc' 'geeksforgeeks' 'gfg' 'code' ]; console . log ( maxString ( arr ));
Çıkış
geeksforgeeks
Zaman Karmaşıklığı: Ç(n*m) Neresi N verilen dize dizisinin boyutudur ve M verilen dizide bulunan dizenin en büyük boyutudur.
Yardımcı Alan: O(1)