1. 程式人生 > 其它 >【ybtoj】【字串】【例題2】移位包含

【ybtoj】【字串】【例題2】移位包含

技術標籤:ybtoj字串

【例題2】移位包含


Link

傳送門
題目


解題思路

把每一種移位做出來,再find一下就好了

關於 string 型別的Something

  • string 型別的定義和初始化
    1. string str1; // 定義一個字串 str1,初始化為空
    2. string str2(str1); //str1 初始化 str2
    3. string str3("emmmm"); // str3 初始化值為 “emmmm”
    4. string str4(n, ‘h’); // str4 初始化值為 n‘h’
    5. string 型別不以 '\0 結尾
  • string 型別的輸入
    1. cin>>字串變數;
      注意:cin輸入時,空格和換行符被認為是字串的結束
    2. getline(cin, 字串變數);
      注意:getline輸入時,字串包含空格,換行符被認為時字串的結束
  • string 型別的常用操作
    1. s.empty() //s 為空,則返回true,否則返回false
    2. s.size() // 返回 s 中的字元個數
    3. s.insert(pos, s2) //s 下標為 pos 的元素前插入 string 型別 s2
    4. s.substr(pos, n) // 返回從 s 下標 pos 起的 n 個字元,型別為 string
    5. s.erase(pos, n) // 刪除 s
      下標 pos 起的 n 個字元
    6. s.replace(pos, n, s2) //s 下標 pos 起的 n 個字元替換為 s2 的內容
    7. s.find(s2, pos) //s 下標 pos 起查詢 s2 第一次出現的位置
    8. s1.compare(s2) // s1 == s2時返回0;s1 < s2 時返回值小於0;s1 > s2 時返回值大於0。
      (此處的邏輯比較都是比較字典序)

Code

#include <iostream>
#include <cstdio>
#include <string>

using namespace std;

string a,
b; int main() { cin >> a >> b; for (int i = 0; i < a.size(); i++) { char c = a[0]; //取出第一個字元 a = a.substr(1, a.size() - 1); //從第二個字元開始複製,也等於a.erase(0,1) a = a + c; //把第一個字元放在後面——移位 if (a.find(b, 0) != string::npos) { //如果find不到返回string::npos printf("true"); return 0; } } printf("false"); }