OJ题目运行错误,本地运行没问题

小白求救,运行错误,但找不出问题在哪

在本地成功运行,也测试了好多组数据。但是本人可能欠缺经验,编写程序习惯不好,可能一些细节没注意,导致提交到OJ上去,显示运行错误。我自己又找不到问题。。。跪求大佬帮忙看看
####题目描述
在n个整数中查找指定数字。
####输入
输入数据有多组,每组数据包括两行,第一行包含一个整数n(0<n<=100)和n个整数。第二行包含一个整数m表示要查找的关键字。
####输出
如果在n个整数中有和m相等的输出该整数,如果没有输出null。
####样例输入

5 1 2 3 4 5
3
3 10 20 30
100

样例输出

3
null

小白的代码:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] array = new int[100];
        while (true) {
            int cin = sc.nextInt();
            for (int i = 0; i < cin; i++) {
                int inp = sc.nextInt();
                array[i] = inp;
            }
            int inpp = sc.nextInt();
            for (int i = 0; i < cin; i++) {
                if (array[i] == inpp) {
                    System.out.println(inpp);
                    break;
                }
                else if (arr[i] != inpp && arr[i] == arr[cin - 1])
                    System.out.println("null");
            }
        }
    }
}


#2019-10-26
问题已解决
while循环的循环条件不能用true,要用hasNext

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
求助大神~自己编译器运行没有问题,oj却显示运行错误

题目描述 小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客。 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况;对于第i艘到达的船,他记录了这艘船到达的时间ti (单位:秒),船上的乘 客数星ki,以及每名乘客的国籍 x(i,1), x(i,2),…,x(i,k);。 小K统计了n艘船的信息,希望你帮忙计算出以每一艘船到达时间为止的24小时(24小时=86400秒)内所有乘船到达的乘客来自多少个不同的国家。 形式化地讲,你需要计算n条信息。对于输出的第i条信息,你需要统计满足 ti - 86400 < tp <= ti的船只p,在所有的x(p,j)中,总共有多少个不同的数。 输入格式: 第一行输入一个正整数n,表示小K统计了 n艘船的信息。 接下来n行,每行描述一艘船的信息:前两个整数ti和ki分别表示这艘船到达海港的时间和船上的乘客数量,接下来ki个整数x(i,j)表示船上乘客的国7。 保证输入的ti是递增的,单位是秒;表示从小K第一次上班开始计时,这艘船在第 ti 秒到达海港。 其中表示所有的ki的和。 输出格式: 输出n行,第i行输出一个整数表示第i艘船到达后的统计信息。 ![图片说明](https://img-ask.csdn.net/upload/201710/24/1508838562_212619.png) #include <cstdio> int n,t[11000],k[11000],a=0,x[11000][33000],s=0,y[11000],c; int main(){ scanf("%d",&n); for(int i=1;i<=n;++i){ scanf("%d%d",&t[i],&k[i]); for(int j=1;j<=k[i];++j)scanf("%d",&x[i][j]); } for(int i=1;i<=n;++i){ for(int j=i;t[j]>t[i]-86400;--j){ for(int l=1;l<=k[j];++l){ for(int u=1;u<=a;++u)if(x[j][l]!=y[u])++s; if(s==a)y[++a]=x[j][l]; s=0; } } printf("%d\n",a); a=0; } return 0; }

在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?

在VS上运行没有问题,但提交oj出现段错误,在VS上该如何调试?

(c语言的)为什么oj平台一直显示运行时错误?

![图片说明](https://img-ask.csdn.net/upload/201905/11/1557571560_864025.png) ``` #include<stdio.h> int myStrLen(char *s); void myStrConcat(char *string1, char *string2); int main() { int n, i, a, b, c[10]; char s[10][41]; scanf("%d %d %d", &n, &a, &b); for (i = 0; i < n; i++) scanf("%d", &c[i]); for (i = 0; i < n; i++) scanf("%s", s[i]); myStrConcat(s[a], s[b]); for (i = 0; i < n; i++) { printf("%d", myStrLen(s[i])); if (s[i + 1]) printf(" "); } printf("\n"); for (i = 0; i < n; i++) { printf("%s", s[c[i]]); if (i < n - 1) printf("\n"); } return 0; } int myStrLen(char *s) { int i; for (i = 0; s[i]; i++) { } return i; } void myStrConcat(char *string1, char *string2) { int i = 0, j = 0; while (string1[i] != '\0') i++; while (string2[j] != '\0') string1[i++] = string2[j++]; string1[i] = '\0'; } ```

在oj上显示运行时错误,有大佬能帮忙看一下吗?

问题描述: 任意给定两个字符串str1与str2, str1与str2中可以包含任意字符。你的任务是统计字符串str2在str1中出现的次数。 如字符串str1为“asasasbbbasbas”,str2为“as”,则统计结果为5。注意如果字符串str1为“aaaaa”,字符串str2为“aaa”,则统计结果为3。 输入与输出要求: 输入两个长度不超过100的字符串,以换行符结束。输出统计次数,占一行。 程序运行效果: dhd dhdhdfg dhd dh zx67 dhd mklodhdh↙ dhd↙ 6↙ #include <stdio.h> #include <stdlib.h> int main() { int i, count; char str1[102], str2[102], *s1, *s2, *str; s1=(char*)malloc(102); s2=(char*)malloc(102); str=(char*)malloc(102); fgets(str1,102,stdin); for(i=0;str1[i]!='\n';i++)//统计str1中的字符个数 { } str1[i]='\0';//将str1中的最后一个'\n'转化成'\0' fgets(str2,102,stdin); for(i=0;str2[i]!='\n';i++)//统计str2中的字符个数 { } str2[i]='\0';//将str2中的最后一个'\n'转化成'\0' count=0;//count的初始化 str=str1;//将str1的字符放入str中,能够让下面操作直接用str++ while(*str!='\0') { s1=str;//s1为str的当前判断字符 s2=str2;//s2为str2的首字符 while(*s1==*s2&&*s2!='\0')//判断两个字符串的每个字符是否相等,若相等且s2并未结束则各往后读一位字符 { s1++; s2++; } if(*s2=='\0')//跳出while循环时s2已经结束了则满足条件 { count++;//若满足条件count加一 } str++; } printf("%d", count); free(s1); free(s2); free(str); return 0; }

代码在VC上运行正常,在OJ上运行失败

1.问题描述: 在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚(牛棚的总数S:1<= S<=200)没有住满。 剩下的牛一个紧挨着另一个被排成一行安置在有屋顶的牛棚来过夜。 所以有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度,且宽度设为1。 因为有些门遗失,农民约翰需要架起新的木板作为门。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 计算拦住所有有牛的牛棚所需木板的最小总长度。 输出所需木板的最小总长度作为的答案。 说明:拦住一个牛棚需要的木板长度为1,拦住相邻的三个牛棚则需要木板长度为3。 比如有牛的牛棚编号为: 3 5 8 10 11 并且只能使用两块木板, 则第一块木板从3到5,长度为3, 第二块木板从8到11,长度为4, 因此,需要木板的总长度为7。 2.输入说明: 第 1 行: M 和 C(用空格分开) 第 2 到 C+1行: 每行包含一个整数,表示牛所占的牛棚的编号。 其中: 可能买到的木板最大的数目:M(1<= M<=50); 需要安置的牛的数目C(1<= C <=S) 安置后牛所在的牛棚的编号stall_number(1<= stall_number <= S)。 3.自编代码 ``` int main(){ int m,c,t,n,min; int i,j,k=0; int s[201],a[120]; scanf("%d%d",&m,&c); for(i=0;i<=200;i++){ s[i]=0; } for(i=0;i<c;i++){ scanf("%d",&n); s[n]=1; } for(i=1;s[i]==0;i++); for(t=200;s[t]==0;t--); min=t-i+1; while(i<=t){//找出i到t内所有没有牛的位置长度 j=0; if(s[i]==0){ while(s[i+j]==0){ j++; } a[k++]=j; } i=i+j+1; } for(i=0;i<k-1;i++){//对位置长度进行从大到小排序 for(j=0;j<k-i-1;j++){ if(a[j]<a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } } } i=0; while(m>1 && i<k){ min=min-a[i]; m--; i++; } printf("%d\n",min); return 0; } ``` 4.运行结果: OJ上的结果: ![图片说明](https://img-ask.csdn.net/upload/202003/26/1585195124_271585.png) VC上的结果: ![图片说明](https://img-ask.csdn.net/upload/202003/26/1585195148_407920.png)

在vs2017上运行没有问题,在学校的oj上(gcc编译器)发生段错误,不知道错误点在哪里,求点明

在vs2017上运行没有问题,在学校的oj上(gcc编译器)发生段错误,下面的代码是为了解决那个Biggest Number那个题目。小白一枚,实在找不到错误点,望大佬点明。 ``` #include<stdio.h> #include<stdlib.h> #include<math.h> #include<time.h> #include<string.h> char temp[40]; int high, wide; void DFS(char all[][15],int x,int y,char number[],int len) { number[len] = all[x][y]; all[x][y] -= 10; if (x + 1 < high && all[x + 1][y] != '#'&&all[x + 1][y] > '0') { DFS(all, x + 1, y, number, len+1); all[x + 1][y] += 10; } if (x - 1 >= 0 && all[x - 1][y] != '#'&&all[x - 1][y] > '0') { DFS(all, x - 1, y, number, len+1); all[x - 1][y] += 10; } if (y + 1 < wide && all[x][y + 1] != '#'&&all[x][y + 1]>'0') { DFS(all, x, y + 1, number, len+1); all[x][y + 1] += 10; } if (y - 1 >= 0 && all[x][y - 1] != '#'&&all[x][y - 1] > '0') { DFS(all, x, y - 1, number, len+1); all[x][y - 1] += 10; } if (strlen(temp) == strlen(number)) { if (strcmp(number, temp) > 0) strcpy(temp, number); number[len] = '\0'; } else if (strlen(temp) < strlen(number)) { strcpy(temp, number); number[len] = '\0'; } else number[len] = '\0'; } int main() { char all[15][15]; char number[40]; for (int i = 0; i < 25; i++) { memset(all, 0, 225); memset(temp, 0, 40); scanf("%d %d", &high, &wide); if (high == 0 && wide == 0) break; getchar(); getchar(); for (int i = 0; i < high; i++) { for (int j = 0; j < wide; j++) all[i][j] = getchar(); getchar(); } for (int i = 0; i < high; i++) for (int j = 0; j < wide; j++) if (all[i][j] != '#') { memset(number, 0, 40); int len = 0; DFS(all, i, j, number, len); all[i][j] += 10; } printf("%s \n", temp); } return 0; } ```

在OJ上程序提交出现RE错误,求解答

在oj上进行训练的时候,提交程序出现RE错误,不知道为何,由于代码篇幅较长,请各位大佬移步这里 [程序提交出现RE错误](http://blog.csdn.net/weixin_39684284/article/details/77197272 "")

大数加减,VS上可以运行,oj上显示段错误,哪里出问题了?

#include <iostream> using namespace std; struct list { char num; list * next; }; void creat(list * & head) { list *s,*p; s=new list; s->next=NULL; cin.get(s->num); while(s->num!='\n') { if((s->num>='0'&&s->num<='9')||s->num=='-') { if(head==NULL) {head=s; head->next=NULL; p=s;} else if(head->num=='-') {if(p->num=='-') {p->next=s; p=s;} else {s->next=head->next; head->next=s;}} else if(head->num>='0'&&head->num<='9') {s->next=head; head=s;} } s=new list; s->next=NULL; cin.get(s->num); } delete s; return; } void add(list *h1,list *h2,list * & h3) { list *h; h=new list; h->next=NULL; int a,b,d,c=0; while(h1||h2) { if(h1&&h2) { a=(int)h1->num-48; b=(int)h2->num-48; d=a+b+c; c=0; if(d/10==0) { h->num=d+48; c=0; } else { c=d/10; d%=10; h->num=d+48; } if(h3==NULL) {h3=h; h3->next=NULL;} else {h->next=h3; h3=h;} h1=h1->next; h2=h2->next; h=new list; } else if(h1) { a=(int)h1->num-48; d=a+c; if(d/10==0) { h->num=d+48; c=0; } else { c=d/10; d%=10; h->num=d+48; } h->next=h3; h3=h; h1=h1->next; h=new list; } else if(h2) { a=(int)h2->num-48; d=a+c; if(d/10==0) { h->num=d+48; c=0; } else { c=d/10; d%=10; h->num=d+48; } h->next=h3; h3=h; h2=h2->next; h=new list; } } if(c) { h->num=c+48; h->next=h3; h3=h; h=new list; } } int count(list *head) { int f; list *g; g=head; for(f=0;g;f++) { g=g->next; } return f; } int compare(list *h1,list *h2) { int t,a,b,e,j; e=count(h1); j=count(h2); if(e>j) t=1; else if(e<j) t=0; else { while(h1||h2) { a=(int)h1->num-48; b=(int)h2->num-48; if(a>=b) t=1; else t=0; h1=h1->next; h2=h2->next; } } return t; } void Minus(list *h1,list *h2,list * & h3) { int a,b,c=0,d,t; list *h; h=new list; h->next=NULL; t=compare(h1,h2); if(t) { while(h1||h2) { if(h1&&h2) { a=(int)h1->num-48; b=(int)h2->num-48; if(a-c>=b) { d=a-c-b; h->num=d+48; c=0; } else { d=a-c+10-b; h->num=d+48; c=1; } if(h3==NULL) {h3=h; h3->next=NULL;} else {h->next=h3; h3=h;} h1=h1->next; h2=h2->next; h=new list; } else if(h1) { a=h1->num-48; if(a-c>=0) { d=a-c; h->num=d+48; c=0; } else { d=a-c+10; h->num=d+48; c=1; } h->num=d+48; h->next=h3; h3=h; h1=h1->next; h=new list; } } } else { Minus(h2,h1,h3); h->num='-'; h->next=h3; h3=h; } } void show(list *head) { int a,c,d=1,q=1; list *h; h=head; if(h->num=='-') { h=h->next; } while(q) { if(h->num!='0') q=0; else h=h->next; } a=count(h); c=a%3; while(h) { if(c) { cout<<h->num; h=h->next; c--; d=0; } else if(h&&d) { c=3; d=0; } else if(h) { cout<<','; c=3; } } cout<<endl; } int main() { int x,a,b,c,i; char y; cin>>x; for(i=0;i<x;i++) { a=1; b=1; c=0; cin>>y; cin.get(); list * h1=NULL; list * h2=NULL; list * h3=NULL; creat(h1); creat(h2); if(y=='+') { if(h1->num=='-') { a=0; h1=h1->next; } if(h2->num=='-') { b=0; h2=h2->next; } if(a&&b) add(h1,h2,h3); else if(a) Minus(h1,h2,h3); else if(b) Minus(h2,h1,h3); else { list *s; s=new list; s->num='-'; s->next=NULL; add(h1,h2,h3); s->next=h3; h3=s; } } else if(y=='-') { if(h1->num=='-') { a=0; h1=h1->next; } if(h2->num=='-') { b=0; h2=h2->next; } if(a&&b) Minus(h1,h2,h3); else if(a) add(h1,h2,h3); else if(b) { list *s; s=new list; s->num='-'; s->next=NULL; add(h1,h2,h3); s->next=h3; h3=s; } else Minus(h2,h1,h3); } if(h3->num=='-') { c=1; h3=h3->next; } if(c) cout<<'-'; show(h3); } }

求教本机编译通过oj上却显示编译错误的原因?

一直用的G++编译器,后来发现这道题我换C++编译器以后就能过了。。。 代码: #include<stdio.h> #include<iostream> using namespace std; int T; int n, m; int woc[52][52]; int main() { cin >> T; while (T--) { int sum = 0; cin >> n >> m; memset(woc, 0, sizeof(woc)); for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { cin >> woc[i][j]; if (woc[i][j]>0) sum++; } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { for (int k = 1; k <= woc[i][j]; k++) { if (woc[i - 1][j] < k) sum++; if (woc[i + 1][j] < k) sum++; if (woc[i][j - 1] < k) sum++; if (woc[i][j + 1] < k) sum++; } } } cout << sum << endl; } system("pause"); } 题号hdu5538 链接:http://icpc.njust.edu.cn/Contest/6697/L/

老哥们,这个程序在编译器上可以运行并能得到正确答案,可提交OJ却编译错误,自己找不出哪不对

![图片说明](https://img-ask.csdn.net/upload/201707/30/1501381331_963161.png) 问题链接http://acm.hdu.edu.cn/showproblem.php?pid=2124

java代码有bug,在eclipse上可以运行,在oj系统上就有错误,但是只能运行一部分

![![图片说明](https://img-ask.csdn.net/upload/201811/07/1541569581_852187.jpg) 图片说明](https://img-ask.csdn.net/upload/201811/07/1541569572_510465.jpg) import java.util.*; class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()) { int N = sc.nextInt(); MultiValueMap<String, String> stringMultiValueMap = new LinkedMultiValueMap<>(); while (N-- > 0) { String id = sc.next(); String time = sc.next(); stringMultiValueMap.add(id, time); } Set<String> keySet = stringMultiValueMap.keySet(); for (String key : keySet) { List<String> values = stringMultiValueMap.getValues(key); if (values.size() < 6) continue; ArrayList<Integer> total_times = new ArrayList<>(); for (String value : values) { int h = Integer.parseInt(value.substring(0, 2)); int d = Integer.parseInt(value.substring(3, 5)); int s = Integer.parseInt(value.substring(6, 8)); int total_time = h * 3600 + d * 60 + s; total_times.add(total_time); } Collections.sort(total_times); if (check(total_times)) System.out.println(key); } } } private static boolean check(ArrayList<Integer> list) { for (int i = 0; i <= list.size() - 6; i++) { for (int j = i + 1; j < i + 6; j++) { if (Math.abs(list.get(i) - list.get(j)) >= 3600) return false; } } return true; } } interface MultiValueMap<K, V> { void add(K key, V value); void add(K key, List<V> values); void set(K key, V value); void set(K key, List<V> values); void set(Map<K, List<V>> values); List<V> remove(K key); void clear(); Set<K> keySet(); List<V> values(); V getValue(K key, int index); List<V> getValues(K key); int size(); boolean isEmpty(); boolean containsKey(K key); } class LinkedMultiValueMap<K, V> implements MultiValueMap<K, V> { protected Map<K, List<V>> mSource = new LinkedHashMap<K, List<V>>(); public LinkedMultiValueMap() { } @Override public void add(K key, V value) { if (key != null) { if (!mSource.containsKey(key)) mSource.put(key, new ArrayList<V>(2)); mSource.get(key).add(value); } } @Override public void add(K key, List<V> values) { for (V value : values) { add(key, value); } } @Override public void set(K key, V value) { mSource.remove(key); add(key, value); } @Override public void set(K key, List<V> values) { mSource.remove(key); add(key, values); } @Override public void set(Map<K, List<V>> map) { mSource.clear(); mSource.putAll(map); } @Override public List<V> remove(K key) { return mSource.remove(key); } @Override public void clear() { mSource.clear(); } @Override public Set<K> keySet() { return mSource.keySet(); } @Override public List<V> values() { List<V> allValues = new ArrayList<V>(); Set<K> keySet = mSource.keySet(); for (K key : keySet) { allValues.addAll(mSource.get(key)); } return allValues; } @Override public List<V> getValues(K key) { return mSource.get(key); } @Override public V getValue(K key, int index) { List<V> values = mSource.get(key); if (values != null && index < values.size()) return values.get(index); return null; } @Override public int size() { return mSource.size(); } @Override public boolean isEmpty() { return mSource.isEmpty(); } @Override public boolean containsKey(K key) { return mSource.containsKey(key); } }

杭电oj 2629题目求解惑

杭电oj2629 自己编译运行输出是符合要求的,可是再oj上就是提示输出错误,希望好心人能为我解惑!!! ``` #include<stdio.h> #include<string.h> int main() { int n; char s[20]; int place,birthday,garbage; int year, month, day; scanf("%d", &n); while (n--) { scanf("%6d", &place); scanf("%8d", &birthday); scanf("%4d", &garbage); if (place == 330000) strcpy(s,"Zhejiang"); else if (place == 110000) strcpy(s, "Beijing"); else if (place == 710000) strcpy(s, "Taiwan"); else if (place == 810000) strcpy(s, "Hong Kong"); else if (place == 820000) strcpy(s, "Macao"); else if (place == 540000) strcpy(s, "Tibet"); else if (place == 210000) strcpy(s, "Liaoning"); else if (place == 310000) strcpy(s, "Shanghai"); year = birthday / 10000; month = birthday / 100 - year * 100; day = birthday % 100; printf("He/She is from %s,and his/her birthday is on %d,%d,%d based on the table.\n", s, month, day, year); } return 0; } ```

在学校的oj里面是错误了百分之50

输入的第1行是测试数据的组数n,后面跟着n行输入。(1<=n<=90) 输出有n行,每行输出对应一个输入 #include<stdio.h> int main() { int n,i,j,x,y,b; scanf("%d",&x); int a[100]={1,1}; for(i=0;i<x;i++) { scanf("%d",&y); if(y>2) { for(j=2;j<90;j++) { a[j]=a[j-1]+a[j-2]; b=a[y-1]; } printf("%d\n",b); } else { printf("%d\n",1); } } return 0; }

为什么交到oj会运行超时?

Description 使用闭散列,利用线性探查方法解决冲突,把给出的关键码插入到有n个槽的散列表中(槽从0到n-1编号)。使用的散列函数H(k) = k mod n。 Input 第一行输入n(散列表的长度);第二行输入关键码序列(都是正整数)。 Output 按行输出散列表的情况,每一行两个整数,中间有一个空格隔开。 第一个整数为槽号,第二个整数为对应槽所填的关键码。 Sample Input 13 12 23 45 57 20 3 78 31 15 36 Sample Output 0 78 2 15 3 3 5 57 6 45 7 20 8 31 10 23 11 36 12 12 附上我的代码: #include<iostream> #include<stdio.h> using namespace std; int main(){ int n; cin >> n; int * p = new int[n]; int * q = new int[n]; for (int r = 0; r < n; r++){ p[r] = 0; q[r] = p[r]; } int i = 0; char num; cin >> p[i++]; while ((num = getchar()) != '\n'){ cin >> p[i++]; } for (int j = 0; j < i; j++){ int flag = 0; int temp = 0; while (!flag){ int index = (p[j] % n + temp) % n; if (q[index] == 0){ q[index] = p[j]; flag = 1; } temp++; } } for (int u = 0; u < n; u++){ if (q[u]) cout << u << " " << q[u] << endl; } }

C++为什么我的程序在本机上能运行成功,OJ却显示runtime error

![图片说明](https://img-ask.csdn.net/upload/201610/01/1475330048_464109.png)

找字串 运行错误 怎么解决?

找子串个数,提交oj平台总是说运行错误,可是自己编译没问题啊,qiu'jie ``` #include<iostream> #include<algorithm> #include<string> using namespace std; int main() { int j = 0, cnt = 0; string s1, s2; getline(cin,s1); while (getline(cin,s2)) { for (unsigned int i = 0; i < s2.length() - s1.length() + 1;) { if (s2[i] == s1[j]) { unsigned int k, count = 0; for (k = 0; k < s1.length() && s2[i] == s1[j]; i++, k++, j++) { count++; } if (count == s1.length()) { cnt++; }count = 0; j = 0; } else i++; } } cout << cnt; return 0; } ```

c++ oj 题目,求大神帮忙

19:字符串移位包含问题 查看 提交 统计 提问 总时间限制: 1000ms 内存限制: 65536kB 描述 对于一个字符串来说,定义一次循环移位操作为:将字符串的第一个字符移动到末尾形成新的字符串。 给定两个字符串s1和s2,要求判定其中一个字符串是否是另一字符串通过若干次循环移位后的新字符串的子串。例如CDAA是由AABCD两次移位后产生的新串BCDAA的子串,而ABCD与ACBD则不能通过多次移位来得到其中一个字符串是新串的子串。 输入 一行,包含两个字符串,中间由单个空格隔开。字符串只包含字母和数字,长度不超过30。 输出 如果一个字符串是另一字符串通过若干次循环移位产生的新串的子串,则输出true,否则输出false。 样例输入 AABCD CDAA 样例输出 true 我的代码: ``` #include<bits/stdc++.h> using namespace std; int main() { char c[1001],s[1001]; cin>>s; cin>>c; if(strlen(s)<strlen(c)) swap(s,c); strcat(s,s); if(strstr(s,c)==0) cout<<"false"; else cout<<"true"; return 0; } ``` 本地运行是对的,一上oj就出现了Runtime error 啥原因。。

一段OJ运行超时代码,请各位指点一下

https://pintia.cn/problem-sets/994805342720868352/problems/994805376476626944 题目链接如下,利用bfs却出现了超时的问题,求助。。。 ``` #include<iostream> #include<stdlib.h> #include<stdio.h> #include<vector> #include<queue> #include<algorithm> #include<math.h> using namespace std; using std::vector; using std::queue; const int maxn=100010; struct node{ double data; vector<int>child; int layer; }Node[maxn]; int n; double p,r; bool cmp(node a,node b){ return a.layer>b.layer; } void BFS(int x){ int layer=-1; queue<int>q; q.push(x); while(!q.empty()){ layer++; int length=q.size(); for(int i=0;i<length;i++){ int index=q.front(); q.pop(); Node[index].layer=layer; for(int j=0;j<Node[index].child.size();j++){ q.push(Node[index].child[j]); } } } } int main(){ int root; int mem; scanf("%d%lf%lf",&n,&p,&r); for(int i=0;i<n;i++){ scanf("%d",&mem); if(mem!=-1){ //如果不是根节点 Node[mem].child.push_back(i); }else{ root=i; } } BFS(root); sort(Node,Node+n,cmp); int layer=Node[0].layer; int sum=0; for(int i=0;i<n;i++){ if(Node[i].layer==layer) sum++; } printf("%.2f %d",p*pow(1+r/100,layer),sum); system("pause"); return 0; } ```

我在oj上输出时提示格式错误,求大神指教

#include <iostream> using namespace std; int main() { int n; cin >> n; int * p = new int[n * 2]; int i; for (i = 0; i < n; i++) { cin >> p[i * 2]; cin >> p[i * 2 + 1]; } for (i = 0; i < n; i++) { int a = p[i * 2]; int b = p[i * 2 + 1]; if (a > b || a <= 0 || b >= 10) { cout << "Input Error!"; continue; } for (int j = a; j <= b; j++) { for (int k = 1; k <=j; k++) { cout << j << "*" << k << "=" << j * k << "\t"; } cout << endl; } if (i != n - 1) cout << endl; } return 0; }

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

你以为这样写Java代码很6,但我看不懂

为了提高 Java 编程的技艺,我最近在 GitHub 上学习一些高手编写的代码。下面这一行代码(出自大牛之手)据说可以征服你的朋友,让他们觉得你写的代码很 6,来欣赏一下吧。 IntStream.range(1, 5).boxed().map(i -&gt; { System.out.print("Happy Birthday "); if (i == 3) return "dear NAME"...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

优雅的替换if-else语句

场景 日常开发,if-else语句写的不少吧??当逻辑分支非常多的时候,if-else套了一层又一层,虽然业务功能倒是实现了,但是看起来是真的很不优雅,尤其是对于我这种有强迫症的程序"猿",看到这么多if-else,脑袋瓜子就嗡嗡的,总想着解锁新姿势:干掉过多的if-else!!!本文将介绍三板斧手段: 优先判断条件,条件不满足的,逻辑及时中断返回; 采用策略模式+工厂模式; 结合注解,锦...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

为什么你不想学习?只想玩?人是如何一步一步废掉的

不知道是不是只有我这样子,还是你们也有过类似的经历。 上学的时候总有很多光辉历史,学年名列前茅,或者单科目大佬,但是虽然慢慢地长大了,你开始懈怠了,开始废掉了。。。 什么?你说不知道具体的情况是怎么样的? 我来告诉你: 你常常潜意识里或者心理觉得,自己真正的生活或者奋斗还没有开始。总是幻想着自己还拥有大把时间,还有无限的可能,自己还能逆风翻盘,只不是自己还没开始罢了,自己以后肯定会变得特别厉害...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

程序员为什么千万不要瞎努力?

本文作者用对比非常鲜明的两个开发团队的故事,讲解了敏捷开发之道 —— 如果你的团队缺乏统一标准的环境,那么即使勤劳努力,不仅会极其耗时而且成果甚微,使用...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

Python爬虫,高清美图我全都要(彼岸桌面壁纸)

爬取彼岸桌面网站较为简单,用到了requests、lxml、Beautiful Soup4

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

前几天我们公司做了一件蠢事,非常非常愚蠢的事情。我原以为从学校出来之后,除了找工作有测试外,不会有任何与考试有关的事儿。 但是,天有不测风云,公司技术总监、人事总监两位大佬突然降临到我们事业线,叫上我老大,给我们组织了一场别开生面的“考试”。 那是一个风和日丽的下午,我翘着二郎腿,左手端着一杯卡布奇诺,右手抓着我的罗技鼠标,滚动着轮轴,穿梭在头条热点之间。 “淡黄的长裙~蓬松的头发...

大牛都会用的IDEA调试技巧!!!

导读 前天面试了一个985高校的实习生,问了他平时用什么开发工具,他想也没想的说IDEA,于是我抛砖引玉的问了一下IDEA的调试用过吧,你说说怎么设置断点...

面试官:你连SSO都不懂,就别来面试了

大厂竟然要考我SSO,卧槽。

立即提问
相关内容推荐