PD-計算兩字串的特性

2022.11.07 PM 03:00 by CBJ

來源 : https://drive.google.com/file/d/1CMnis82zw9hGQHW1pRv3LFXACoUGA90Y/view
出題者 : 108資訊學科能力競賽複賽-彰雲嘉
標籤 : 搜尋
難易度 : 2
解題想法 : 遍歷a(或b),每次判斷是否具有甲特性,若有則更新甲,否則進一步判斷是否具有乙特性(運用搜尋)並更新乙。
//C++ language
//solution link(含註解): https://github.com/CBJ0519/CBJsProgramDiary.com/blob/main/%E8%B3%87%E8%A8%8A%E5%AD%B8%E7%A7%91%E8%83%BD%E5%8A%9B%E7%AB%B6%E8%B3%BD/108%E5%BD%B0%E9%9B%B2%E5%98%89/PD-%E8%A8%88%E7%AE%97%E5%85%A9%E5%AD%97%E4%B8%B2%E7%9A%84%E7%89%B9%E6%80%A7.cpp

#include<iostream>
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main(){
    string a,b;
    cin>>a>>b;
    vector<char>in_b;
    for(char c:b)in_b.push_back(c);
    int Jia=0,Yi=0;
    for(int i=0;i<a.length();i++){
        if(a[i]==b[i]){
            Jia++;
            continue;
        }
        auto target=find(in_b.begin(),in_b.end(),a[i]);
        if(target!=in_b.end()){
            Yi++;
        }
    }
    cout<<Jia<<" "<<Yi<<"\n";
    return 0;
}
## Python language
## solution link(含註解): https://github.com/CBJ0519/CBJsProgramDiary.com/blob/main/%E8%B3%87%E8%A8%8A%E5%AD%B8%E7%A7%91%E8%83%BD%E5%8A%9B%E7%AB%B6%E8%B3%BD/108%E5%BD%B0%E9%9B%B2%E5%98%89/PD-%E8%A8%88%E7%AE%97%E5%85%A9%E5%AD%97%E4%B8%B2%E7%9A%84%E7%89%B9%E6%80%A7.py

a,b=input().split()
Jia=Yi=0
for i in range(len(a)):
    if a[i]==b[i]:
        Jia+=1
        continue
    target=b.find(a[i])
    if target!=-1: Yi+=1 
print(Jia,Yi)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *