编程题 共5道
给定一个字符串 S,输出该字符串的中位字符。
中位字符指的是字符串正中间的字符。当字符串长度为奇数时,中位字符是唯一的;当长度为偶数时,中位字符是中间的两个字符。
一个字符串 S。
一个字符,表示 S的中间字符。
c++
+
a
abc
b
abcd
bc
【数据范围】
· 1≤∣S∣≤106;
· ∣S∣ 表示字符串的长度,且 S 不含任何不可见字符。
时间限制:1000ms
内存限制:256MiB
某地质勘探队正在研究一条山脉的 N个连续山峰,山峰编号为 1 到 N。每个山峰的高度状态用字符串 S 表示:# 表示高峰,. 表示低谷。
地质学家需要统计存在多少山峰编号 i(1≤i≤N−2)满足以下特殊地形特征:
· 山峰 i是高峰;
· 山峰 i+1 是低谷;
· 山峰 i+2 是高峰。
即寻找所有满足"高峰-低谷-高峰"模式的连续三个山峰组的起始位置数量。
· 第一行:整数 N(山峰数量);
· 第二行:长度为 N 的字符串 S(山峰高度状态)。
满足条件的山峰编号 i的个数。
6 #.##.#
6
#.##.#
2
1 #
1
#
0
9 ##.#.#.##
9
##.#.#.##
3
· 1≤N≤2×105;
· S 仅包含字符 # 和 .。
森林里住着 26 只小动物,它们分别对应字母 A 到 Z。这些小动物的家沿着一条直线排列,相邻两家之间的距离为 1。
它们的排列顺序记作一个字符串 S。
现在,你要按顺序去拜访 A,B,C,…,Z。每次拜访时,你需要从当前动物的家移动到目标小动物的家。
起初,你直接在动物 A 所处的位置。请计算到拜访完Z为止,需要移动的距离之和。
共一行,输入一串字符串 S。
共一行,输出一个整数,表示从 A 出发到拜访完 Z 的最小总移动距离。
ABCDEFGHIJKLMNOPQRSTUVWXYZ
25
VENFLQURTCWOAXMGJYIZDKSBHP
231
S长度为 26。
给定一个字符串表示扑克牌的牌面顺序,两名玩家轮流抽取卡牌。每次抽取后,立即比较双方当次抽取的牌面大小,并输出比较结果。
比较规则:
· 牌面大小顺序: 3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A < 2
· 若牌面相同,则判定为平局
一个字符串,表示扑克牌的顺序
一个字符串,依次表示每次比较的结果:
· > 表示玩家1的牌更大
· < 表示玩家2的牌更大
· = 表示平局
8632T5669A
><>=<
J2TT34K5
<=<>
· 单张牌面字符属于集合 {3,4,5,6,7,8,9,T,J,Q,K,A,2}
· 输入字符串长度一定是偶数,且不超过 2×106
给定一个整数 X 和一个长度为 NN 的整数序列 p1,p2,…,pN。
请找出不在该序列中的整数(不一定为正数)中,与 X 的差的绝对值最小的那个整数。若存在多个满足条件的整数,则输出其中最小的一个。
第一行:两个整数 X,N;
第二行:N个整数表示 p1,p2,…,pN。
注意:当 N=0 时,第二行为空行。
输出满足条件的整数。
6 5 4 7 10 6 5
6 5
4 7 10 6 5
8
6 5 4 7 8 6 5
4 7 8 6 5
· 0≤N<100;
· 1≤X,pi<100。