210720 子串判断

题目描述

输入两个字符串,验证其中一个串是否为另一个串的子串。

输入格式

输入两个字符串, 每个字符串占一行,长度不超过 200 且不含空格。

输出格式

若第一个串 s1 是第二个串 s2 的子串,则输出 (s1) is substring of (s2)

否则,若第二个串 s2 是第一个串 s1 的子串,输出 (s2) is substring of (s1)

否则,输出 No substring

样例

样例输入

abc
dddncabca
样例输出

abc is substring of dddncabca
数据范围与提示 分类标签

[字符串] [字符数组]

C++题解代码

#include <bits/stdc++.h>
using namespace std;

string s1;
string s2;
string ss;
bool a;


// The main procedure
int main() {
  cin>>s1;
  cin>>s2;
  if (s1.size() > s2.size()) {
    ss = s1;
    s1 = s2;
    s2 = ss;
  }
  for (int i = 0; i <= (s2.size()-s1.size()); i++) {
    a = true;
    for (int j = 0; j < s1.size(); j++) {
      if (s1[j] != s2[(i+j)]) {
        a = false;
        break;
      }
    }
    if (a) {
      break;
    }
  }
  if (a) {
    cout<<s1;
    cout<<" is substring of ";
    cout<<s2;
  } else {
    cout<<"No substring";
  }
  return 0;
}

Blockly题解代码图片