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;
    }



  • 相关阅读:
    how to fix bug in daily work
    我终究还是辞职了
    Nutch1.7学习笔记:基本环境搭建及使用
    线性表的基本操作
    GROUP BY中ROLLUP/CUBE/GROUPING/GROUPING SETS使用示例
    一步一步学android控件(之六) —— MultiAutoCompleteTextView
    echo命令写shell
    注入问题0x00
    Apache解析漏洞详解
    MySQL注入
  • 原文地址:https://www.cnblogs.com/zeolim/p/12270638.html
Copyright © 2011-2022 走看看