L1-058 6翻了 (15 分)(while的巧妙使用)

简介: L1-058 6翻了 (15 分)(while的巧妙使用)

不给出题干了,直接上代码

#include<bits/stdc++.h>
using namespace std;
const int N = 1e6+10;
typedef long long ll;
string s;
int cnt,cnts;
int main()
{
  getline(cin,s);
  int len=s.size();
  for(int i=0;i<len;i++)
  {
    cnt=0;
    if(s[i]=='6')
    {
      while(s[i]=='6')
      {
        cnt++;
        i++;  
      }
      if(cnt<=3)
      {
        for(int i=1;i<=cnt;i++) cout<<"6";
        i--;
      }
      else
      if(cnt>3&&cnt<=9)
      {
        cout<<"9";
        i--;
      }
      else
      {
        cout<<"27";
        i--;
      }
    }
    else
    {
      cout<<s[i];
    }
  }
}


反思


一开始用 stringstream 流做的,只有13分,各种错误,后来改了,以后碰到连续的相同字母和连续的相同数字,都用while处理,既能记录个数,又能让下标下移,十分好用


目录
相关文章
|
2月前
|
算法 搜索推荐 Java
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
基数排序是一种稳定的排序算法,通过将数字按位数切割并分配到不同的桶中,以空间换时间的方式实现快速排序,但占用内存较大,不适合含有负数的数组。
39 0
数据结构与算法学习十三:基数排序,以空间换时间的稳定式排序,速度很快。
|
存储 机器学习/深度学习
二叉树详解一万字(基础版)看着一篇就够了(上))
树的结构是一种非线性的数据结构,它是由n(n>=0)个节点组成的一个有层次的关系集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说他是根朝上,而叶朝下。
156 0
二叉树详解一万字(基础版)看着一篇就够了(下)
对于堆的调整相当于是对数组的一种调整,将数组的首地址传进来,要调整的数组的长度,相当于是退出的循环条件,向下传给进来parent(root),向上传给child(size-1),然后再用一个表示另外一个。将参数传进来之后进行比较,先比较两个孩子,找出小的那个,然后交换较小孩子和双亲节点,在比较左右孩子的时候要保证右孩子也存在才可以进行比较,就是child+1<size,原因就是这里是堆,是完全二叉树
69 0
|
算法 NoSQL Redis
关于跳表,这么解释你肯定能听懂
如何用 30s 给面试官讲清楚什么是跳表
127 0
关于跳表,这么解释你肯定能听懂
|
C++ ice Perl
【力扣·每日一题】748. 最短补全词(C++ 模拟)
【力扣·每日一题】748. 最短补全词(C++ 模拟)
78 0
【力扣·每日一题】748. 最短补全词(C++ 模拟)
L1-058 6翻了 (15 分)
L1-058 6翻了 (15 分)
170 0
L1-058 6翻了 (15 分)
|
算法 BI C++
蓝桥杯练习题十四 - 次数差(c++)
蓝桥杯练习题十四 - 次数差(c++)
104 0
随机练习题:浅浅固定思路
随机练习题:浅浅固定思路
273 0
|
机器学习/深度学习 测试技术
PAT乙级1001 害死人不偿命的(3n+1)猜想 (15分)
PAT乙级1001 害死人不偿命的(3n+1)猜想 (15分)
88 0
L1-021 重要的话说三遍 (5 分)
L1-021 重要的话说三遍 (5 分)
90 0