L1-027 出租

一、题目

二、解题思路

  1. 初始化数组,每个元素都是 0 ;
  2. 遍历手机号,将数字作为数组下标,并将对应的元素赋值为 1 ;
  3. 倒序遍历数组,如果数组值为 1 ,则表示手机号中有这个数字,则输出,并将数字转为字符添加到字符串;
  4. 遍历手机号,通过字符串的 find() 方法得到下标。

三、代码

#include<iostream>
using namespace std;
#include<string>
int main()
{
	int a[15];
	string tel,arr;
	cin>>tel;
	for(int i=0;i<10;i++)
	{
		a[i]=0;
	}
	for(int i=0;i<tel.length();i++)
	{
		a[int(tel[i])-'0']=1;
	}
	int cot=0;
	cout<<"int[] arr = new int[]{";
	for(int i=9;i>=0;i--)
	{
		if(a[i]==1)
		{
			if(cot)
			{
				cout<<',';
			}
			cout<<i;
			cot++;
			arr+=(char(i)+'0');
		}
	}
	cout<<"};"<<endl;
	cout<<"int[] index = new int[]{";
	for(int i=0;i<tel.length();i++)
	{
		if(i)
		{
			cout<<',';
		}
		cout<<arr.find(tel[i]);
	}
	cout<<"};";
	return 0;
}

四、总结

        利用数组的下标以及字符串的 find() 方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值