zoukankan      html  css  js  c++  java
  • 洛谷 P1098 字符串的展开



    可以说是非常变态了  全是细节问题 

    #include <iostream>
    using namespace std;
    void put(int p1,int p2,int p3, char fst, char lst)
    {
    	if(p1 == 1)
    	{
    		if(p3 == 1)
    		{
    			char tc = fst + 1;
    			while(tc < lst)
    			{
    				int t = p2;
    				while(t--)
    				{
    					cout<<tc;
    				}
    				tc++;
    			}
    		}
    		else 
    		{
    			char tc = lst - 1;
    			while(tc > fst)
    			{
    				int t = p2;
    				while(t--)
    				{
    					cout<<tc;
    				}
    				tc--;
    			}
    		}
    	}
    	else if(p1 == 2)
    	{
    		if(p3 == 1)
    		{
    			char tc = fst + 1 - 32;
    			while(tc < lst - 32)
    			{
    				int t = p2;
    				while(t--)
    				{
    					cout<<tc;
    				}
    				tc++;
    			}
    		}
    		else
    		{
    			if(lst >= 'a' && lst <='z')
    			{
    				char tc = lst - 1 - 32;
    				while(tc > fst - 32)
    				{
    					int t = p2;
    					while(t--)
    					{
    						cout<<tc;
    					}
    					tc--;
    				}
    			}
    			else
    			{
    				char tc = lst - 1;
    				while(tc > fst)
    				{
    					int t = p2;
    					while(t--)
    					{
    						cout<<tc;
    					}
    					tc--;
    				}
    			}
    		}
    	}
    	else
    	{
    		if(p3 == 1)
    		{
    			char tc = fst + 1;
    			while(tc < lst)
    			{
    				int t = p2;
    				while(t--)
    				{
    					cout<<'*';
    				}
    				tc++;
    			}
    		}
    		else
    		{
    			char tc = lst - 1;
    			while(tc > fst)
    			{
    				int t = p2;
    				while(t--)
    				{
    					cout<<'*';
    				}
    				tc--;
    			}
    		}
    	}
    }
    int main()
    {
    	int p1, p2, p3;
    	cin>>p1>>p2>>p3;
    	
    	string ss;
    	cin>>ss;
    	
    	for(int i = 0; i < ss.length(); i++)
    	{
    		if(ss[i] != '-')
    			cout<<ss[i];
    		else
    		{
    			if(ss[i - 1] >= 'a' && ss[i - 1] <= 'z' && ss[i + 1] >= 'a' && ss[i + 1] <= 'z' || ss[i - 1] >= '0' && ss[i - 1] <= '9' && ss[i + 1] >= '0' && ss[i + 1] <= '9')
    			{
    				if(ss[i - 1] < ss[i + 1]) 
    				{
    					put(p1, p2, p3, ss[i - 1], ss[i + 1]);
    				}
    				else
    				{
    					cout<<ss[i];
    				}
    			}
    			else
    			{
    				cout<<ss[i];
    			}
    		}
    	}
    	return 0;
    }



  • 相关阅读:
    SP503 【PRINT
    UVA10924 【Prime Words】
    UVA902 【Password Search】
    UVA10339 【Watching Watches】
    UVA11057 【Exact Sum】
    DP题单解题报告合集
    P1829 [国家集训队]Crash的数字表格 / JZPTAB
    莫比乌斯反演入门
    莫比乌斯函数
    题解 P3168 [CQOI2015]任务查询系统
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270638.html
Copyright © 2011-2022 走看看