题目:

新类型的字符定义如下:

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]

找到指定的新类型字符相关推荐

  1. sed找到指定字符并进行替换或者删除

    正常替换的语法格式: echo "we are famify" | sed "/are/s/e/E/g" #wE arE famify 如果我们需要把are替换 ...

  2. c++ enum 给定类型_讲解C++中的枚举类型以及声明新类型的方法

    C++枚举类型如果一个变量只有几种可能的值,可以定义为枚举(enumeration)类型.所谓"枚举"是指将变量的值一一列举出来,变量的值只能在列举出来的值的范围内.声明枚举类型用 ...

  3. 微信公众号(一)每日推送详细教程(含实时定位,天气预报,每日英语,纪念日等,可快速自定义消息模板并指定订阅者类型发送)

    微信公众号(一)每日推送,天气推送 (含实时定位,天气预报,每日英语,纪念日等,可快速自定义消息模板并指定订阅者类型发送),另有小白网页版配置 版本介绍 1. 相关API接口申请 1.1 微信 1.2 ...

  4. 在Revit中,如何编程创建新类型(如窗户或墙)

    在我们的ADN中,有许多人都问这个问题.这里与大家分享下. Revit的对象基本上都是基于类型的,把具有相同属性放在类型中保存,不熟悉类型这个概念的请看看帮助,我就不再多啰嗦了 :).在Revit中创 ...

  5. : error c2062: 意外的类型“int”_Go 命令行解析 flag 包之扩展新类型

    上篇文章 说到,除布尔类型 Flag,flag 支持的还有整型(int.int64.uint.uint64).浮点型(float64).字符串(string)和时长(duration). flag 内 ...

  6. C++——新类型与原始字面量(原始字符串)

    1.1新类型 C++11新增类型long long和unsigned long long,以支持64位(或者更宽)整型:新增了char16_t和char32_t以支持16位和32为字符表示:还新增了原 ...

  7. 使用typedef声明新类型及函数指针

    一.使用typedef声明新类型名 C语言支持一种叫做typedef的机制,它允许你为各种数据类型定义新名字.typedef声明的写法和普通的声明基本相同,只是吧typedef这个关键字出现在声明的前 ...

  8. linux type命令(用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令,如果给出的指令为外部指令,则显示其绝对路径)

    文章目录 type 补充说明 语法 选项 参数 实例 type 显示指定命令的类型 补充说明 type命令 用来显示指定命令的类型,判断给出的指令是内部指令还是外部指令. 命令类型: alias:别名 ...

  9. Elasticsearch6.X 新类型Join深入详解

    1.ES6.X 新类型Join 产生背景 Mysql中多表关联,我们可以通过left join 或者Join等实现: ES5.X版本,借助父子文档实现多表关联,类似数据库中Join的功能:实现的核心是 ...

最新文章

  1. Template mode HTML5 has not been configured
  2. 用seaborn 画出唯美的论文专用图片,自己定制python画图的数据集
  3. mysql 指定日期条件求和_如何在mysql中按每个日期对字段进行求和-问答-阿里云开发者社区-阿里云...
  4. 逻辑综合——概述与基本概念
  5. CountDownLatch线程同步辅助
  6. c++ sleep函数_Linux 多线程应用中如何编写安全的信号处理函数
  7. 单继承模式下的JAVA和C++
  8. maven依赖 spark sql_Spark开发实例
  9. 周三直播预告丨openGauss和MogDB的优化分享
  10. linux命令 创建目录权限,linux创建用户并设置目录权限
  11. Vue 打包静态文件路径设置
  12. 简聊初步尝试服务端渲染的一些感想
  13. 提高C#编程水平的50个要诀
  14. USB数据采集卡,Labjack U6、T7 采集卡 VB、C++ 编程范例
  15. c语言sum求和程序,C语言实现的统计素数并求和代码分享
  16. css下标怎么打,css如何显示文字的上标和下标
  17. 如何设计H5编辑器中的模版库并实现自动生成封面图
  18. Android Qcom USB Driver学习(二)
  19. Adobe photshop 安装过程中的问题
  20. 那一年,我与电脑结下了不解之缘

热门文章

  1. quartz+spring框架动态调整频率实践
  2. python编写IP地址与十进制IP转换脚本
  3. 利用运行时设置UITextField 光标颜色
  4. Curator selector
  5. Exchange 数据库邮箱的修复
  6. Leetcode1695. 删除子数组的最大得分[C++题解]:双指针、区间内元素不能重复
  7. 2020年12月大学英语四六级英语作文预测(XDF王江涛)
  8. 李永乐线性代数2020年强化课手写笔记汇总
  9. 台湾国立大学郭彦甫Matlab教程笔记(11) advanced 2D plots 上
  10. 多项式加法 java 链表_多项式加法,用单链表实现。