首页 > 其他分享 >字符串的展开

字符串的展开

时间:2023-07-24 20:13:27浏览次数:30  
标签:p2 ch int char p1 字符串 展开

//字符串的展开
#include <bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string S,Ans;
char ToChar(char ch){
    if(p1==3){
        return '*';
    }
    return p1==1?tolower(ch):toupper(ch);
}
int main(){
    cin>>p1>>p2>>p3>>S;
    S=' '+S+' ';//字符串两端各加一个空格,防止'-'出现在开头或末尾
    for(int i=1;i<S.size()-1;i++){
        if(S[i]!='-'){ 
            Ans+=S[i];
        }else{
            char s=S[i-1],t=S[i+1];
            if(s<t && (islower(s) && islower(t) || isdigit(s) && isdigit(t))){
                if(p3==1){ 
                    for(char i=s+1; i<=t-1; i++){//正序
                        for(int j=0;j<p2;j++){ 
                            Ans+=ToChar(i);
                        } 
                    } 
                }else{ 
                    for(char i=t-1; i>=s+1; i--){//逆序
                        for(int j=0; j<p2; j++){
                            Ans+=ToChar(i);
                        }
                    }
                }
            }else{
                Ans+='-';
            }
        }
    }
    cout<<Ans<<endl;
    return 0;
}
  

 

标签:p2,ch,int,char,p1,字符串,展开
From: https://www.cnblogs.com/w6826301/p/17578216.html

相关文章

  • 字符串展开
    #include<bits/stdc++.h>usingnamespacestd;intp1,p2,p3;stringS,Ans;charToChar(charch){ if(p1==3){ return'*'; } returnp1==1?tolower(ch):toupper(ch);}intmain(){ cin>>p1>>p2>>p3>>S; S='�......
  • LeetCode 热题 100 之 438. 找到字符串中所有字母异位词
    题目给定两个字符串 s 和p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。异位词指由相同字母重排列形成的字符串(包括相同的字符串)。示例 1:输入:s="cbaebabacd",p="abc"输出:[0,6]解释:起始索引等于0的子串是"cba"......
  • 4 字符串
    字符串1反转字符串题目:编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组char[]的形式给出。不要给另外的数组分配额外的空间,你必须原地修改输入数组、使用O(1)的额外空间解决这一问题。你可以假设数组中的所有字符都是ASCII码表中的可打印字符。示......
  • 康托展开及康托逆展开运算总结
    前文:这个东西是我准备进攻一道Astar算法的八数码题目时,遇到的。决定先搞懂这个,再进攻八数码(传说中那道不做人生不完整的题目)。 康托展开:百度百科给出的定义是:康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩。康托展开的实质是计算当前排列在所有由小到大全......
  • 字典序相关字符串问题的 SAM 解法
    前文(SAM基础)如果你并不是很熟SAM,可以看看我远古时期的blog:浅析后缀自动机--Wallace--博客园(cnblogs.com)缘起为什么突然想到这个方面的东西,是因为在ZJU校队预组队时做到一个CF-GYM-100418C,当时一眼SA但实际上根本不熟。赛后发现有位国外老哥随手SAM暴打,一点都......
  • 转!XML文件和DOM Document、String字符串三种类型之间的相互转换
    转自:https://www.cnblogs.com/fightingdeng1998/p/16047075.html用的包是org.w3c.dom.Document下的/***@Authordengzp*@Date2022/3/22*@Version1.0*@Description*/publicclassOperateXMLByDOM{/***将给定文件的内容或者给定URI的内容解析......
  • Shell编程教程 - 字符串变量表达式
    1.字符串变量表达式基本比较示例脚本-`string_comparison.sh`字符串长度检查示例脚本-`string_length.sh`逻辑运算符连接表达式示例脚本-`logical_operators.sh`2.执行示例脚本3.结论大树哥个人信息本教程将向你介绍Shell脚本中字符串变量表达式的使用。我们将学习如何......
  • Day 4: Shell字符串处理
    学习目标学习内容1.字符串拼接2.字符串替换3.字符串截取4.练习任务大树哥个人信息学习目标学习Shell中的字符串处理技巧。掌握字符串的拼接、替换和截取方法。练习编写脚本,处理和操作字符串数据。学习内容今天我们将学习如何在Shell编程中处理和操作字符串。1.......
  • android 日期字符串转时间戳
    Android日期字符串转时间戳教程概述在Android开发中,经常会遇到将日期字符串转换为时间戳的需求。本文将向你介绍整个转换流程,并提供相应的代码示例。转换流程下面是将Android日期字符串转换成时间戳的一般流程,可以用表格展示如下:步骤描述1获取日期字符串2创建日......
  • java 如何字符串中的换行去除
    项目方案:Java字符串中的换行去除1.项目概述本项目旨在提供一种在Java中去除字符串中的换行符的方案。在许多情况下,我们需要处理包含换行符的字符串,例如从文件中读取的文本、网络请求返回的数据等。本项目将介绍几种常用的方法,并提供代码示例帮助读者理解和实践。2.解决方案......