2015网易游戏笔试第一题(找9706的重复次数)

#include<iostream>
#include<string>
#include<vector>
#include<iterator>
using namespace std;

int main()
{
	int number=0;
	//int number=1;
	cin>>number;
	vector<string>s_list;
	for(int i=0;i<number;i++)
	{
		string s1;
		cin>>s1;
		s_list.push_back(s1);
	}
	for(int i=0;i<number;i++)
	{
		int sum=0 ;//记录出现次数
		//int j=0; //
		string s=s_list[i];
		//string s("997776600069");
		//int num;
		vector<int>vec_v9,vec_v7,vec_v0,vec_v6;
		vector<int>::iterator it_v9,it_v7,it_v0,it_v6;
		for(size_t i=0;i<s.size();i++)
		{
			switch(s[i])
			{
			case '9':
				{
				vec_v9.push_back(i);
				break;
				}
			case '7':
				{
				vec_v7.push_back(i);
				break;					
				}
			case '0':
				{
				vec_v0.push_back(i);
				break;					
				}
			case '6':
				{
				vec_v6.push_back(i);
				break;					
				}
			default:
				break;
			}

		}

		//接下来正式判断
		it_v9=vec_v9.begin();
		it_v7=vec_v7.begin();
		it_v0=vec_v0.begin();	
	    it_v6=vec_v6.begin();
		//vector<int>::iterator it1=it_v9;
		//vector<int>::iterator it2=it_v7;
		//vector<int>::iterator it3=it_v0;
		//vector<int>::iterator it4=it_v6;

		int back_flags=0;
		for(vector<int>::iterator it1=it_v9;it1!=vec_v9.end();it1++)
		{
			if(back_flags==1)
			{
				break;
			}
			for(vector<int>::iterator it2=it_v7;it2!=vec_v7.end();it2++)
			{
				if(back_flags==1)
				{
					break;
				}
				for(vector<int>::iterator it3=it_v0;it3!=vec_v0.end();it3++)
				{
					if(back_flags==1)
					{
						break;
					}
					for(vector<int>::iterator it4=it_v6;it4!=vec_v6.end();it4++)
					{
						if(*it1<*it2&&*it2<*it3&&*it3<*it4)
						{
							sum++;
							if((it1+1)==vec_v9.end()||(it2+1)==vec_v7.end()||(it3+1)==vec_v0.end()||(it4+1)==vec_v6.end())
							{
								back_flags=1;
								break;
							}
							else
							{
								it1++;it2++;it3++;it4;
							}
							
						}
						else
						{
							continue;
						}
					}
				}
			}
		}

		
		cout<<sum<<endl;

		
	}
	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值