2 solutions

  • 2
    @ 2025-5-22 17:18:39
    
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
    	int len;
    	string s1,s2;
    	getline(cin,s1);
    	getline(cin,s2);
    	if(s1.length()>s2.length()) len=s2.length();
    	else len=s1.length();
    	for(int i=0;i<len;i++){
    		if(s1[i]==s2[i]) cout<<i+1<<" ";
    	}
    	return 0;
    }
    
    
    
    
    • 1
      @ 2025-7-25 16:45:03

      好的,这道题目给定的两个字符串长度均<=200 所以说我们可以用len来保存我们所需的长度 这个len的值wei: if(x.size()<=y.size() len = x.size(); //若相等两个均可以 还要注意,循环是循环长度小的字符串

      再循环的过程中,由于输入早已结束 所以每当x[i] == y[i] 即可以输出i+1(because下标少一)

      我的代码肯定不是最简洁的,但题解思路清晰 若想要最简洁的代码,请看刘丛睿的题解 代码如下```

      #include<bits/stdc++.h>
      using namespace std;
      int main()
      {
          string a,b;
          cin >> a >> b;
          int len; //定义len
          if(a.size() > b.size())//判断,这里可以分为两种情况,为了清晰可以这样写
          {
              len = b.size();
              for(int i = 0;i < len;i++)//循环长度小的字符串
              {
                  if(a[i]==b[i])
                  {
                      cout<<i+1<<" ";
                  }
              }
          }
          else if(a.size()< b.size())
          {
              len = a.size();
              for(int i = 0;i < len;i++)
              {
                  if(a[i]==b[i])
                  {
                      cout<<i+1<<" ";
                  }
              }
          }
          else
          {
              len = a.size();//任意一个即可
              for(int i = 0;i < len;i++)
              {
                  if(a[i]==b[i])
                  {
                      cout<<i+1<<" ";
                  }
              }
          }
          return 0;
      }
      

      帅哥美女们点个赞吧~

      • 1

      Information

      ID
      1151
      Time
      1000ms
      Memory
      64MiB
      Difficulty
      10
      Tags
      # Submissions
      4
      Accepted
      3
      Uploaded By