B 1084 外观数列(找规律处理字符串)

题目

在这里插入图片描述

思路

说实话,这题我确实没有比较好的思路。
代码参考的是柳神的。

做法是:
用字符串储存d。
通过循环,遍历到所求的第n项。
求每一项时,外循环遍历目前字符串,内循环寻找和前一位不同的字符位置。当找到不同的字符或者遍历完后跳出内循环,此时j就记录了和前一位字符不同的字符的下标。
通过j-i就得到了前一位字符的出现次数。再用to_string加到字符串t中。
令d=t。继续循环。

AC代码

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,j;                        //用j来记录与前项不同的字符下标 
	string d; cin>>d>>n; 
	for(int cnt=1;cnt<n;cnt++){    //从第一项开始到第n项
		string t;
		for(int i=0;i<d.length();i=j){
			for(j=i; j<d.length() && d[j]==d[i];j++); //不用执行操作,当找到与前项不同的字符时,结束循环j为不同字符的下标 
			t +=d[i] + to_string(j-i); 
		} 
		d=t;
	}
	
	cout<<d;
	return 0;
} 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值