سلام دوستان ، همونطوری که تو نظرات خواسته بودن که سوالات ACM ICPC سایت شریف رو حل کنیم امروز به حل یک سوال نسبتا ساده مسابقه Tehran, Asia Region - Regional 2011 میپردازیم
خب قبل از ادامه حل سوال ابتدا سوال رو کامل مطالعه بفرمایید و سعی کنید خودتان حل کنید این سوال فقط نیازمند پیاده سازی است و نیاز به الگوریتم پیچیده خاصی ندارد توصیه من این است که حدافل نیم ساعت وقت برای حل این سوال بگذارید و بعد کد نمونه را چک کنید.
لازم به ذکر هستش که کدی که من واسه خروجی دادن استفاده کردم شرط یک خطی هست که اگر شرط درست بود مقدار بعد ؟ و اگر نادرست بود و در ادامه : قرار داشت مقدار بعد : را بر می گرداند این تکنیک میتواند کدنویسی شما را سریعتر و نظم کد را در نتیجه ضریب خطا را کاهش دهد.
#include<iostream>#include<string>
using namespace std;
string toS(char inp){
int i,j;
string out("");
string db[8]={"ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};
for(i=0;i<8;i++){
for(j=0;j<db[i].length();j++){
if(db[i][j]==inp){
out.resize(out.size()+j+1,'2'+i);
return out;
}
}
}
}
string toSMS(string inp){
int i;
string out("");
for(i=0;i<inp.length();i++){
out+=toS(inp[i]);
}
return out;
}
int main(){
string str1,str2;
long int T;
cin>>T;
while(T--){
cin>>str1>>str2;
cout<<(toSMS(str1)==toSMS(str2)?"YES\n":"NO\n");
}
return 0;
}
۶ فروردين ۹۲، ۱۰:۲۰
checked !