• 洛谷 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;
    }



  • 相关阅读:
    linux学习
    linux学习--常用基本命令
    expect学习
    linux学习-cut,ssh keygen ,find
    expect
    告别痛苦,快乐学习Pandas!开源教程《Joyful-Pandas》发布
    iBooker 财务提升星球 2020.2~3 热门讨论
    计算机电子书 2020 CDNDrive 备份(预览版)
    poj2017
    poj2000
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270638.html
Copyright © 2020-2023  润新知