📌  相关文章
📜  打印的最大长度的所有字符串从字符串数组

📅  最后修改于: 2021-04-24 14:56:01             🧑  作者: Mango

给定一个字符串数组arr [] ,任务是从给定数组中打印所有最大长度的字符串。

例子:

方法:请按照以下步骤解决问题:

  1. 遍历给定的字符串数组。计算数组中所有字符串的最大长度,并将其存储在变量中,例如len
  2. 现在,再次遍历字符串数组,并从数组中打印长度等于len的那些字符串。

下面是上述方法的实现:

C++
// C++ program to implement
// the above approach
 
#include 
using namespace std;
 
// Function to find the length
// of the longest string from
// the given array of strings
int maxLength(vector arr)
{
    int len = INT_MIN;
    int N = arr.size();
 
    // Traverse the array
    for (int i = 0; i < N; i++) {
 
        // Stores the length
        // of current string
        int l = arr[i].size();
 
        // Update maximum length
        if (len < l) {
 
            len = l;
        }
    }
 
    // Return the maximum length
    return len;
}
 
// Function to print the
// longest strings from the array
void maxStrings(vector arr, int len)
{
    int N = arr.size();
    vector ans;
 
    // Find the strings having length
    // equals to len
    for (int i = 0; i < N; i++) {
        if (len == arr[i].size()) {
            ans.push_back(arr[i]);
        }
    }
 
    // Print the resultant
    // vector of strings
    for (int i = 0; i < ans.size(); i++) {
        cout << ans[i] << " ";
    }
}
 
// Function to print all the
// longest strings from the array
void printStrings(vector& arr)
{
    // Find the length of longest string
    int max = maxLength(arr);
 
    // Find and print all the strings
    // having length equals to max
    maxStrings(arr, max);
}
 
// Driver Code
int main()
{
    vector arr
        = { "aba", "aa", "ad", "vcd", "aba" };
    printStrings(arr);
 
    return 0;
}


Java
// Java program to implement
// the above approach
import java.util.*;
 
class GFG{
 
// Function to find the length
// of the longest String from
// the given array of Strings
static int maxLength(String []arr)
{
    int len = Integer.MIN_VALUE;
    int N = arr.length;
 
    // Traverse the array
    for(int i = 0; i < N; i++)
    {
         
        // Stores the length
        // of current String
        int l = arr[i].length();
 
        // Update maximum length
        if (len < l)
        {
            len = l;
        }
    }
 
    // Return the maximum length
    return len;
}
 
// Function to print the
// longest Strings from the array
static void maxStrings(String []arr, int len)
{
    int N = arr.length;
    Vector ans = new Vector();
 
    // Find the Strings having length
    // equals to len
    for(int i = 0; i < N; i++)
    {
        if (len == arr[i].length())
        {
            ans.add(arr[i]);
        }
    }
 
    // Print the resultant
    // vector of Strings
    for(int i = 0; i < ans.size(); i++)
    {
        System.out.print(ans.get(i) + " ");
    }
}
 
// Function to print all the
// longest Strings from the array
static void printStrings(String [] arr)
{
     
    // Find the length of longest String
    int max = maxLength(arr);
 
    // Find and print all the Strings
    // having length equals to max
    maxStrings(arr, max);
}
 
// Driver Code
public static void main(String[] args)
{
    String []arr = { "aba", "aa", "ad",
                     "vcd", "aba" };
                      
    printStrings(arr);
}
}
 
// This code is contributed by Amit Katiyar


Python3
# Python3 program to implement
# the above approach
import sys
 
# Function to find the length
# of the longest string from
# the given array of strings
def maxLength(arr):
 
    lenn = -sys.maxsize - 1
    N = len(arr)
 
    # Traverse the array
    for i in range(N):
 
        # Stores the length
        # of current string
        l = len(arr[i])
 
        # Update maximum length
        if (lenn < l):
            lenn = l
 
    # Return the maximum length
    return lenn
 
# Function to print the
# longest strings from the array
def maxStrings(arr, lenn):
 
    N = len(arr)
    ans = []
     
    # Find the strings having lenngth
    # equals to lenn
    for i in range(N):
        if (lenn == len(arr[i])):
            ans.append(arr[i])
 
    # Print the resultant
    # vector of strings
    for i in range(len(ans)):
        print(ans[i], end = " ")
 
# Function to print all the
# longest strings from the array
def printStrings(arr):
 
    # Find the length of longest string
    max = maxLength(arr)
 
    # Find and print all the strings
    # having length equals to max
    maxStrings(arr, max)
 
# Driver Code
if __name__ == '__main__':
     
    arr = [ "aba", "aa", "ad",
            "vcd", "aba" ]
     
    printStrings(arr)
 
# This code is contributed by mohit kumar 29


C#
// C# program to implement
// the above approach
using System;
using System.Collections.Generic;
class GFG{
 
// Function to find the length
// of the longest String from
// the given array of Strings
static int maxLength(String []arr)
{
    int len = int.MinValue;
    int N = arr.Length;
 
    // Traverse the array
    for(int i = 0; i < N; i++)
    {       
        // Stores the length
        // of current String
        int l = arr[i].Length;
 
        // Update maximum length
        if (len < l)
        {
            len = l;
        }
    }
 
    // Return the maximum length
    return len;
}
 
// Function to print the
// longest Strings from the array
static void maxStrings(String []arr,
                       int len)
{
    int N = arr.Length;
    List ans = new List();
 
    // Find the Strings having length
    // equals to len
    for(int i = 0; i < N; i++)
    {
        if (len == arr[i].Length)
        {
            ans.Add(arr[i]);
        }
    }
 
    // Print the resultant
    // vector of Strings
    for(int i = 0; i < ans.Count; i++)
    {
        Console.Write(ans[i] + " ");
    }
}
 
// Function to print all the
// longest Strings from the array
static void printStrings(String [] arr)
{   
    // Find the length of longest String
    int max = maxLength(arr);
 
    // Find and print all the Strings
    // having length equals to max
    maxStrings(arr, max);
}
 
// Driver Code
public static void Main(String[] args)
{
    String []arr = {"aba", "aa", "ad",
                    "vcd", "aba"};                    
    printStrings(arr);
}
}
 
// This code is contributed by Rajput-Ji


输出:
aba vcd aba


时间复杂度: O(N)
辅助空间: O(N)