📌  相关文章
📜  具有相同字符的最大子字符串

📅  最后修改于: 2021-05-06 10:04:22             🧑  作者: Mango

给定一个大小为N的字符串s 。任务是找到由相同字符组成的最大子字符串

例子:

方法 :
从左到右遍历字符串。取两个变量anstemp 。如果当前元素与上一个元素相同,则增加temp 。如果当前元素不等于前一个元素,则将temp设置1并更新ans

下面是上述方法的实现:

C++
// CPP program to find largest sub
// string with same characters
#include 
using namespace std;
  
// Function to find largest sub
// string with same characters
int Substring(string s)
{
  
    int ans = 1, temp = 1;
  
    // Traverse the string
    for (int i = 1; i < s.size(); i++) {
        // If character is same as
        // previous increment temp value
        if (s[i] == s[i - 1]) {
            ++temp;
        }
        else {
            ans = max(ans, temp);
            temp = 1;
        }
    }
    ans = max(ans, temp);
  
    // Return the required answer
    return ans;
}
  
// Driver code
int main()
{
    string s = "abcdddddeff";
  
    // Function call
    cout << Substring(s);
  
    return 0;
}


Java
// Java program to find largest sub
// string with same characters
import java.util.*;
  
class GFG 
{
  
// Function to find largest sub
// string with same characters
static int Substring(String s)
{
    int ans = 1, temp = 1;
  
    // Traverse the string
    for (int i = 1; i < s.length(); i++) 
    {
        // If character is same as
        // previous increment temp value
        if (s.charAt(i) == s.charAt(i - 1)) 
        {
            ++temp;
        }
        else 
        {
            ans = Math.max(ans, temp);
            temp = 1;
        }
    }
    ans = Math.max(ans, temp);
  
    // Return the required answer
    return ans;
}
  
// Driver code
public static void main(String[] args) 
{
    String s = "abcdddddeff";
  
    // Function call
    System.out.println(Substring(s));
}
}
  
// This code is contributed by 29AjayKumar


Python3
# Python3 program to find largest sub
# with same characters
  
# Function to find largest sub
# with same characters
def Substring(s):
  
    ans, temp = 1, 1
  
    # Traverse the string
    for i in range(1, len(s)):
          
        # If character is same as
        # previous increment temp value
        if (s[i] == s[i - 1]):
            temp += 1
        else:
            ans = max(ans, temp)
            temp = 1
  
    ans = max(ans, temp)
  
    # Return the required answer
    return ans
  
# Driver code
s = "abcdddddeff"
  
# Function call
print(Substring(s))
  
# This code is contributed by Mohit Kumar


C#
// C# program to find largest sub
// string with same characters
using System;
class GFG 
{
  
// Function to find largest sub
// string with same characters
static int Substring(String s)
{
    int ans = 1, temp = 1;
  
    // Traverse the string
    for (int i = 1; i < s.Length; i++) 
    {
        // If character is same as
        // previous increment temp value
        if (s[i] == s[i - 1]) 
        {
            ++temp;
        }
        else
        {
            ans = Math.Max(ans, temp);
            temp = 1;
        }
    }
    ans = Math.Max(ans, temp);
  
    // Return the required answer
    return ans;
}
  
// Driver code
public static void Main(String[] args) 
{
    String s = "abcdddddeff";
  
    // Function call
    Console.WriteLine(Substring(s));
}
}
  
// This code is contributed by Rajput-Ji


PHP


输出:

5

时间复杂度:O(N)