小红的字符转换 小红拿到了一个仅由"red"组成的字符串,她希望你将所有的'r'变成'e','e'变成"d',"d'变成'r'后,返回这个字符串。你能帮帮她吗?请注意,这些变化是同时进行的。字符串长度不超过10^5 示例 1 输入 "rredd" 输出 "eedrr" int main(){string s = "rredd";//eedrrfor (auto& v : s){if (v =
思路:我以符合条件的最极限情况来安排回文,即两个两个字符为一组回文,保证其不参与其他回文字符串的构造,以这样子的形式输出k个,剩下的都只输出不连续的·当个字符(‘a’+i%26) 看不到?nono!,那下代码吧~(看看什么叫通透!) ACcode: #include<bits/stdc++.h>using namespace std;#define int long longint n
思路这次采用两种写法 1.采用模拟的方式(用vector进行优化) 2.可以算是思维进行‘优化’ 思路大家都挺好想的,就是其中的细节(具体思路可以参考以下代码,豁然开朗(逃~)) ACcode: 1(优雅帅气stl) #include <bits/stdc++.h>using namespace std;//#define int long longconst int N=1e5
题目描述 对于一个排列,小红定义该排列的总消耗为:1走到2,2走到3,……,最终从 n − 1 n-1 n−1走到 n n n所需的最少的总步数。其中,每一步可以向左走一步,也可以向右走一步。 现在,小红只记得排列的大小 n n n和走的步数 k k k,但不记得排列的构造情况了。请你帮小红还原整个排列。 输入描述 两个正整数 n n n和 k k k,用空格隔开。 满足条件: 1 ≤
题面 分析 存在负数不满足单调性,因此无法二分或者双指针,对于每一段符合条件的区间 [ l , r ] [l, r] [l,r] 都有 s u m [ r ] − s u m [ l − 1 ] > = k sum[r] - sum[l - 1] >= k sum[r]−sum[l−1]>=k ,也就是 s u m [ l − 1 ] < = s u m [ r ] − k sum[l