找到指定的新类型字符
题目:
新类型的字符定义如下:
1、新类型字符是长度为1或2的字符串
2、表现形式可以仅是小写字母,也可以是大写字母+小写字母,也可以是大写字母+大写字母。例如,a,Bc,DD都是符合条件的新类型字符。
现在给定一个字符串str,str一定是若干新类型字符正确组合的结果。比如“eaCCBi”,由新类型字符“e”,“a”,“CC”,“Bi”拼成。再给定一个整数k,代表str中的位置。请返回被k位置指中的新类型字符。
举例:
str = “aaABCDEcBCg”.
k = 7时,返回“Ec”
k = 4时,返回“CD”
k = 10时,返回“g”
基本思路:
一种笨方法是从左向右遍历,依次划出新类型字符,到k位置时就知道指定的新类型字符是什么。这里不在详述。
更快的方法。从k-1位置开始,向左统计大写字母的个数记为uNum,遇到小写字母就停止。
1、如果uNum为奇数,str[k-1…k]就是被指中的新类型字符
2、如果uNum为偶数且str[k]为大写,则str[k…k+1]就是被指中的新类型字符
3、如果str[k]为小写,str[k]就是被指中的新类型字符
def pointNewchar(s,k):if s == None or len(s) == 0 or k < 0 or k > len(s):return ""num = 0for i in range(k-1,-1,-1):if s[k].islower():breaknum +=1if num & 1 == 1: //为奇数return s[k-1:k+1]elif s[k].isupper(): //偶数 大写return s[k:k+2]else: //偶数 小写return s[k]
找到指定的新类型字符相关推荐
- sed找到指定字符并进行替换或者删除
正常替换的语法格式: echo "we are famify" | sed "/are/s/e/E/g" #wE arE famify 如果我们需要把are替换 ...
- c++ enum 给定类型_讲解C++中的枚举类型以及声明新类型的方法
C++枚举类型如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内.声明枚举类型用 ...
- 微信公众号(一)每日推送详细教程(含实时定位,天气预报,每日英语,纪念日等,可快速自定义消息模板并指定订阅者类型发送)
微信公众号(一)每日推送,天气推送 (含实时定位,天气预报,每日英语,纪念日等,可快速自定义消息模板并指定订阅者类型发送),另有小白网页版配置 版本介绍 1. 相关API接口申请 1.1 微信 1.2 ...
- 在Revit中,如何编程创建新类型(如窗户或墙)
在我们的ADN中,有许多人都问这个问题.这里与大家分享下. Revit的对象基本上都是基于类型的,把具有相同属性放在类型中保存,不熟悉类型这个概念的请看看帮助,我就不再多啰嗦了 :).在Revit中创 ...
- : error c2062: 意外的类型“int”_Go 命令行解析 flag 包之扩展新类型
上篇文章 说到,除布尔类型 Flag,flag 支持的还有整型(int.int64.uint.uint64).浮点型(float64).字符串(string)和时长(duration). flag 内 ...
- C++——新类型与原始字面量(原始字符串)
1.1新类型 C++11新增类型long long和unsigned long long,以支持64位(或者更宽)整型:新增了char16_t和char32_t以支持16位和32为字符表示:还新增了原 ...
- 使用typedef声明新类型及函数指针
一.使用typedef声明新类型名 C语言支持一种叫做typedef的机制,它允许你为各种数据类型定义新名字.typedef声明的写法和普通的声明基本相同,只是吧typedef这个关键字出现在声明的前 ...
- linux type命令(用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令,如果给出的指令为外部指令,则显示其绝对路径)
文章目录 type 补充说明 语法 选项 参数 实例 type 显示指定命令的类型 补充说明 type命令 用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令. 命令类型: alias:别名 ...
- Elasticsearch6.X 新类型Join深入详解
1.ES6.X 新类型Join 产生背景 Mysql中多表关联,我们可以通过left join 或者Join等实现: ES5.X版本,借助父子文档实现多表关联,类似数据库中Join的功能:实现的核心是 ...
最新文章
- Template mode HTML5 has not been configured
- 用seaborn 画出唯美的论文专用图片,自己定制python画图的数据集
- mysql 指定日期条件求和_如何在mysql中按每个日期对字段进行求和-问答-阿里云开发者社区-阿里云...
- 逻辑综合——概述与基本概念
- CountDownLatch线程同步辅助
- c++ sleep函数_Linux 多线程应用中如何编写安全的信号处理函数
- 单继承模式下的JAVA和C++
- maven依赖 spark sql_Spark开发实例
- 周三直播预告丨openGauss和MogDB的优化分享
- linux命令 创建目录权限,linux创建用户并设置目录权限
- Vue 打包静态文件路径设置
- 简聊初步尝试服务端渲染的一些感想
- 提高C#编程水平的50个要诀
- USB数据采集卡,Labjack U6、T7 采集卡 VB、C++ 编程范例
- c语言sum求和程序,C语言实现的统计素数并求和代码分享
- css下标怎么打,css如何显示文字的上标和下标
- 如何设计H5编辑器中的模版库并实现自动生成封面图
- Android Qcom USB Driver学习(二)
- Adobe photshop 安装过程中的问题
- 那一年,我与电脑结下了不解之缘
热门文章
- quartz+spring框架动态调整频率实践
- python编写IP地址与十进制IP转换脚本
- 利用运行时设置UITextField 光标颜色
- Curator selector
- Exchange 数据库邮箱的修复
- Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复
- 2020年12月大学英语四六级英语作文预测(XDF王江涛)
- 李永乐线性代数2020年强化课手写笔记汇总
- 台湾国立大学郭彦甫Matlab教程笔记(11) advanced 2D plots 上
- 多项式加法 java 链表_多项式加法,用单链表实现。