牛客oj 习题3.6打印极值点坐标&&习题3.7找位置(本题好题)

这题样例一开始有个案例个数可是题目输入中却未说明,结果按输入格式为主,样例是错的,害我白白WA了一次。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <map>
#include <cmath>
#include <climits>

using namespace std;

const int MAXN = 100;
const int INF = INT_MAX;

int num[MAXN];

int main(){
//	freopen("in.txt", "r", stdin);
	int k;
	//scanf("%d", &n);
	while(~scanf("%d", &k)){
		for(int i = 0; i < k; i++){
			scanf("%d", &num[i]);
		}
		int count = 0, ans[MAXN];
		if(num[0] != num[1]) ans[count++] = 0;
		for(int i = 1; i < k-1; i++){
			if(((num[i] > num[i-1]) && (num[i] > num[i+1])) || ((num[i] < num[i-1]) && (num[i] < num[i+1]))){
				ans[count++] = i;
			}
		}
		if(num[k-1] != num[k-2]) ans[count++] = k-1;
		bool flag = false;
		for(int i = 0; i < count; i++){
			if(flag) printf(" ");
			printf("%d", ans[i]);
			flag = true;
		}
		printf("\n");
	}
	return 0;
}

这题我是利用了数组下标可以是字符的特性,把重复的字母存在一个ans数组中,再遍历原串求出出现的位置。

这题有个疑问就是字符长度最大是100,我数组开到了105居然不够,开到130才够,而visit和ans肯定不会溢出的情况下,能够溢出的只有num数组了,至于为什么溢出。。我搞不懂。。不过可以肯定的是,如果对自己的代码有信心的话,多半是溢出了,数组开大点就好。

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstring>
#include <map>
#include <cmath>
#include <climits>

using namespace std;

const int MAXN = 130;
const int INF = INT_MAX;

int num[MAXN];
char ans[MAXN];
bool visit[MAXN]; 

int main(){
//	freopen("in.txt", "r", stdin);
	string str;
	while(cin >> str){
		memset(num, 0, sizeof(num));
		memset(visit, false, sizeof(visit));
		int length = str.size();
		int count = 0;
		for(int i = 0; i < length; i++){
			num[str[i]]++;
		}
		for(int i = 0; i < length; i++){
			if((num[str[i]] >= 2) && (visit[str[i]] == false)){
				ans[count++] = str[i];
				visit[str[i]] = true;
			}
		}
		for(int i = 0; i < count; i++){
			bool flag = false;
			for(int j = 0; j < length; j++){
				if(ans[i] == str[j]){
					if(flag) printf(",");
					printf("%c:%d", ans[i], j);
					flag = true;
				}
			}
			printf("\n");
		}
	}
	return 0;
}
发布了411 篇原创文章 · 获赞 72 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/Flynn_curry/article/details/104388341