给定一个大小为N的字符串s 。任务是找到由相同字符组成的最大子串
例子:
Input : s = “abcdddddeff”
Output : 5
Substring is “ddddd”
Input : s = aabceebeee
Output : 3
方法 :
从左到右遍历字符串。取两个变量ans和temp 。如果当前元素与前一个元素相同,则增加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
Javascript
输出:
5
时间复杂度:O(N)
如果您希望与专家一起参加现场课程,请参阅DSA 现场工作专业课程和学生竞争性编程现场课程。