Acwing 771.双指针 字符串中最长的连续出现的字符

简介: Acwing 771.双指针 字符串中最长的连续出现的字符

求一个字符串中最长的连续出现的字符,输出该字符及其出现次数,字符串中无空白字符(空格、回车和 tab、),如果这样的字符不止一个,则输出第一个。


输入格式


第一行输入整数 N,表示测试数据的组数。


每组数据占一行,包含一个不含空白字符的字符串,字符串长度不超过 200。


输出格式


共一行,输出最长的连续出现的字符及其出现次数,中间用空格隔开。


输入样例:

2
aaaaabbbbbcccccccdddddddddd
abcdefghigk

输出样例:

1. d 10
2. a 1


双指针算法 和Y总学的(双指针听起来高大上其实也没啥)

i作为起点,j从i开始遍历,一直跑到第一个不等于s[i]的位置

零碎知识:两个单引号之间不加任何内容是不允许的,因此char 字符在初始化的时候中间需要添加一个空格

#include <iostream>
using namespace std;
int main()
{
  int n;
  cin >> n;
  string s;
  char p ;
  while (n--)
  {
    cin >> s;
    int ans = 0;
    for (int i = 0;i<s.size();i++)
    {  
      int j = i;
      while (s[i]==s[j]&&j<s.size()) j++;
        if (j-i>ans)
        {
          ans = j-i;
          p = s[i];
        }
    }
    cout<<p<<" "<<ans<<endl;
  }
  return 0;
}

来日方长 扎扎实实地打好算法基础 平静地做算法题 也是人生的一种乐——Py小郑

相关文章
|
6月前
|
存储 编译器 C语言
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
函数指针&&数组指针&&数组传参的本质&&字符指针(进阶篇)
126 0
|
6月前
|
存储 C++
使用字符指针变量和字符数组的比较
使用字符指针变量和字符数组的比较
58 0
C4.
|
6月前
|
存储 程序员 C语言
C语言中如何通过指针引用字符串
C语言中如何通过指针引用字符串
C4.
68 0
|
6月前
|
C语言
C语言----字符数组&&指针
C语言----字符数组&&指针
47 0
|
6月前
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
【每日一题Day301】LC2337移动片段得到字符串 | 双指针 计分
48 0
|
6月前
|
算法 C语言
通过指针引用字符串
通过指针引用字符串
65 1
|
2月前
|
存储 人工智能 C语言
C语言程序设计核心详解 第八章 指针超详细讲解_指针变量_二维数组指针_指向字符串指针
本文详细讲解了C语言中的指针,包括指针变量的定义与引用、指向数组及字符串的指针变量等。首先介绍了指针变量的基本概念和定义格式,随后通过多个示例展示了如何使用指针变量来操作普通变量、数组和字符串。文章还深入探讨了指向函数的指针变量以及指针数组的概念,并解释了空指针的意义和使用场景。通过丰富的代码示例和图形化展示,帮助读者更好地理解和掌握C语言中的指针知识。
|
6月前
|
存储 C语言
字符指针变量与字符数组的比较
字符指针变量与字符数组的比较
50 3
|
6月前
|
存储 C语言
字符指针作为函数参数
字符指针作为函数参数
59 2
|
6月前
DAY-2 | 哈希表、指针与区间划分:字符种数统计问题
```markdown ## 题干 [牛客网链接](https://www.nowcoder.com/practice/eb94f6a5b2ba49c6ac72d40b5ce95f50) ## 题解 1. **查表法(哈希表)**:利用数组标记出现过的 ASCII 值小于127的字符,首次出现计数,重复则忽略。 2. **指针与区间划分(回头法)**:遍历字符串,对每个字符检查其前所有字符是否重复,重复则不计数。 ## 方法总结 - 哈希表在去重问题中非常实用,可多做相关练习。 - 使用`continue`时注意避免死循环,确保循环变量会改变。 - 多回顾此类问题以巩固理解。 ```
44 2