蓝桥杯---汉字取首字母(位运算 & 水题)
确实题目虽然有点水,但是开始的时候好像还真的没有想到怎么提取出这个编号一不小心感觉可以可以用unsigned char 这种类型,直接转为16进制,但是之后发现虽然第一次在codeblock中还行,但是第二天尝试的时候还是出错了,DEV中没有问题,所以瞬间感觉自己的肯定不是标准答案,查询之后才感觉位运算终于在题目中能够运用上了
#include <cstdio>
#include <iostream>
#include <cstring>
using namespace std;
int table[27] =
{
0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,
0xB7A2,0xB8C1,0xB9FE,0xBBF7,0xBBF7,
0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,
0xC5BE,0xC6DA,0xC8BB,0xC8F6,0xCBFA,
0xCDDA,0xCDDA,0xCDDA,0xCEF4,0xD1B9,
0xD4D1,0xFFFF
};
//注意题中没有关于i,u,v开头的拼音(因为拼音中没有以i,u,v开头的),所以用下一个值代替即可,最后边界用极大值代替
int search(int p)
{
for(int i = 0; i < 27; ++i)
if(table[i] > p)
return i-1;
}
int main()
{
int T;
char buf[110];
scanf("%d", &T);
while(T--)
{
scanf("%s", buf);
int len = strlen(buf);//一个汉字占两个字节
for(int i = 0; i < len; i+=2)
{
int tmp1 = 0x000000ff & buf[i]; ///取第一个字节,因为temp1为32位整数,所以只需取出其低八位即可。 char字符只有一个字节
int tmp2 = 0x000000ff & buf[i+1]; ///取第二个字节。
int pos = search( (tmp1<<8) +tmp2);///组合成编码后在 编码表中查找。
printf("%c", 'A'+pos);
}
printf("\n");
}
return 0;
}
开始的时候自己写的代码:
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#define INF f0x3f3f3f3f
using namespace std;
int s[30];
void judgePrintf(unsigned char ch[],char table[]){
int i;
for(int x=0;ch[x]!='\0';x+=2) {
for(i=0;i<23;i++)
if(ch[x]*1000+ch[1+x]<s[i])
break;
cout<<table[i-1];
}
cout<<endl;
return ;
}
int main(){
int Count=0;
char table[]="ABCDEFGHJKLMNOPQRSTWXYZ";
unsigned char ch1[100]="啊芭擦搭蛾发噶哈击喀垃妈拿哦啪期然撒塌挖昔压匝",temp[100];
for(int i=0;ch1[i]!='\0';i+=2){
s[Count++]=ch1[i]*1000+ch1[i+1];
}
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>temp;
judgePrintf(temp,table);
}
return 0;
}
顺便说一下char和unsigned的区别,好像其他的什么大的区别也没有,就是char能表示-128~127, unsigned char没有符号位,因此能表示0~255
蓝桥杯---汉字取首字母(位运算 & 水题)的更多相关文章
- 【BZOJ4300】绝世好题(位运算水题)
点此看题面 大致题意: 给你一个序列\(a\),让你求出最长的一个子序列\(b\)满足\(b_i\&b_{i-1}!=0\). 位运算+\(DP\) 考虑设\(f_i\)表示以第\(i\)个数 ...
- [poj2777] Count Color (线段树 + 位运算) (水题)
发现自己越来越傻逼了.一道傻逼题搞了一晚上一直超时,凭啥子就我不能过??? 然后发现cin没关stdio同步... Description Chosen Problem Solving and Pro ...
- java获取汉字拼音首字母 --转载
在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫"李晓明"的人,可以输入'lxm'.写了一个工具类如下: import java.io.Unsupp ...
- AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字,Filterable的使用)
AutoCompleteTextView具有输入提示的功能,但是它的这种提示不适合对股票列表的过滤,如果你玩过股票软件,就会知道只要输入股票名称的首字母或股票代码就会出现符合匹配的股票,这种过滤怎么实 ...
- sql 汉字转首字母拼音
从网络上收刮了一些,以备后用 create function fun_getPY(@str nvarchar()) returns nvarchar() as begin declare @word ...
- JAVA获取汉字拼音首字母
package com.common.util; import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Titl ...
- java汉字获取首字母
前言 在项目中很多时候我们需要获取姓名或者名称的首字母或者全拼,以用于模糊查询或者字母查询,在这里分享一个实例:供小伙伴们参考. 导入jar包 <dependency> <group ...
- C# 获取汉字拼音首字母
最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精 本节探讨C#获取汉字拼音首字母的方法: 代码类东西, ...
- Android -- 获取汉字的首字母
转换 获取一个汉 ...
随机推荐
- 使用RMAN从磁带库恢复归档文件
最近用RMAN对部分归档日志进行了恢复,在此记录恢复过程 由于不能透漏数据库信息,故举例如下: ORACLE_SID=hrdb 恢复目标路径:/NewRmanbak/restore_archive ...
- VBA 按照文件类型名称打开一个文件
Application.GetOpenFilename(fileFilter, fileIndex, fileSelectTitle, button, False) fileFilter: 指定能够被 ...
- Jar mismatch! Fix your dependencies的问题
在开发Android项目的时候,有时需要引用多个项目作为library.在引用项目的时候,有时会出现“Jar mismatch! Fix your dependencies”错误. 这是因为两个项目的 ...
- Spring实战5:基于Spring构建Web应用
主要内容 将web请求映射到Spring控制器 绑定form参数 验证表单提交的参数 对于很多Java程序员来说,他们的主要工作就是开发Web应用,如果你也在做这样的工作,那么你一定会了解到构建这类系 ...
- Tortoise SVN Clean up失败的解决方法
step1: 到 sqlite官网 (http://www.sqlite.org/download.html) 下载 sqlite3.exe (找到 Precompiled Binaries for ...
- android学习笔记29——Intent/IntentFilter
Intent/IntentFilter Intent封装android应用程序需要启动某个组件的“意图”,Intent还是应用程序组件之间通信的重要媒介. EG:Activity之间需要交换数据时,使 ...
- 微软为Visual Studio开发助手拓展C++支持
近日,微软宣布了一项 Visual Studio“开发助手”(Developer Assistant)插件的重大更新,其现已支持“基于 C++ 的情境感知 web 解决方案”.开发助手能够嵌入 Vis ...
- virtual修饰符
virtual(C# 参考) virtual 关键字用于修饰方法.属性.索引器或事件声明,并使它们可以在派生类中被重写. 例如,此方法可被任何继承它的类重写. public virtual doubl ...
- 别去研究C++
转载 YH,今天早晨起来.回想昨天,虽然吐槽了 C++ 的各种问题,但给别人打工,还是要靠 C++ 干活吃饭.我对待 C++ 的态度和云风不同,虽然他所说的 C++ 技术的事情我都懂都理解,而我感受到 ...
- 程序员的sql金典
1.数据库基础概念 2.数据类型 3.通过SQL语句管理数据表 4.数据的增删改 5.Select的基本用法 6.高级数据过滤 7.数据分组 8.限制结果集行数和抑制重复数据 9.计算字段 10.不从 ...