小说版权由小编李晓晖和乐乎共有,若转发请于显然处标明出处:http://www.cnblogs.com/naaoveGIS/

3叁:判断字符串是或不是为回文

总时间范围: 
1000ms

内部存款和储蓄器限制: 
65536kB

描述
输入二个字符串,输出该字符串是还是不是回文。回文是指顺读和倒读都1律的字符串。

输入
输入为1行字符串(字符串中一直不空白字符,字符串长度不超过100)。

输出
假设字符串是回文,输出yes;不然,输出no。

样例输入
abcdedcba

样例输出
yes

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
char a[10001];
char b[10001];
int now;
int find1;
int main()
{
    gets(a);
    int l=strlen(a);
    if(l%2==1)//如果长度是奇数
    {
         find1=l/2+1;//从中间向两边寻找
        int i=0;
        while(i!=find1)
        {
        if(a[find1-i-1]!=a[find1+i-1])//如果两边的值不相同
        {
            cout<<"no";
            return 0;
        }
        else i++;
    }
    cout<<"yes";
    }
    else 
    {
         find1=l/2;
         int i=0;
        while(i!=find1)
        {
        if(a[find1-i-1]!=a[find1+i])
        {
            cout<<"no";
            return 0;
        }
        else i++;
        }
            cout<<"yes";
    }
    return 0;
}

 

1.背景

一.一价值观MySQL+ Memcached框架结构遇到的难题

MySQL本人是契合进行海量数据存款和储蓄的,通过Memcached将走俏数据加载到cache从而加快访问,很多集团近期都采用那样的架构,但随着工作数据量和访问量的缕缕做实,大家蒙受了过多难点:

a.MySQL供给持续拓展拆库拆表,Memcached也需不断跟着扩大体积,扩大体积和掩护理工科人作占据大批量支出时间。

b.Memcached与MySQL数据库数据壹致性难题。

c.Memcached数据命中率低或宕机,大批量造访直接穿透到DB,MySQL不能够支撑。

d.跨机房cache同步难点。

为解决以上难题,大家开始选拔用Redis来取代Memcached。

1.2Redis简介

Redis是1种典型的NoSQL数据库服务器,它可以用作服务程序独立运作于本身的服务器主机。在许多时候,人们只是将Redis视为Key/Value数据库服务器,然而在近年来的本子中,Redis除了Key/Value之外还帮助List、Hash、Set和Ordered
Set等数据结构,由此它的用处也越来越广大。Redis的License是Apache
License,就现阶段而言,它是完全免费。

大家平时会将memcached(数据缓存服务器)与Redis来举行自己检查自纠,因为他俩在动用方法上比较相似,而且也均是免费,均采纳了内部存储器来展开数据缓存。不过它们中间的最大分别在于memcached只是提供了数据缓存服务,①旦服务器宕机,以前在内部存储器中缓存的多寡也将总体流失,
memcached未有提供别的方式的数据持久化成效,而Redis则提供了这么的意义。第三,Redis提供了更进一步丰裕的数目存款和储蓄结构,如Hash和Set等。

类型中平日在如下多少个现象中央银行使Redis:Session共享,数据搜集总计等。

二.Redis环境搭建  

二.一下载安装

Redis对于Linux是法定援救的,安装和平运动用参考官网(http://redis.io/download),但是Redis官方是不支持windows的,好在 Microsoft
Open Tech group 在
GitHub上开发了三个Win6四的版本,项目地址是:https://github.com/MSOpenTech/redis。打开后,直接使用浏览器下载或Git克隆即可:

 图片 1

直白双击redis-server.exe即起步二个redis服务实例,但是假若想以windows服务情势运转,须求执行一下发令:

//注册至劳动行政管理中

redis-server –service-install redis.windows.conf –loglevel verbose
–service-name Redis6379

成功后,开启服务即可:

 图片 2

二.贰大旨配置

Redis如mysql数据库1样,能够援救主旨数据库配置,而且配置方式尤其简单易行。将本来Redis安装文件再复制一份,打开Config文件,修改对应slaveof配置即可:

 图片 3

以地点提到的下令注册服务,运营该从数据库:

图片 4

二.叁密码和权力配置

Redis暗许是从未有过密码的,为了多少的安全性须求大家同心协力运维权限决定和密码配置等。

贰.三.一装置访问权限

开拓config文件,找到bind关键字,修改当中绑定的IP即可:

 图片 5

二.叁.贰装置密码

1致打开config文件,找到requirepass关键字,将对应部分改动为钦赐密码:

 图片 6

留神,如若大家对主数据库设定了密码,那么slave数据库上在监听主数据库的安排中也要抬高对应的密码:

 图片 7

二.肆Redis可视化管理工科具

此间大家采纳RedisDesktopManager来治本Redis数据库。在官网上(https://redisdesktop.com/download)下载完该工具后,本地安装后连接至数据库上:

图片 8 

单击主数据库文件中的redis-cli.exe,输入测试命令:

 图片 9

在输入获取Value的一声令下,发现早已打响:

 图片 10

与此同时,在可视化学工业具中能看到,主从数据库中均已同步:

 图片 11

3.Java操作

三.一凭借环境

使用Java操作Redis供给jedis-2.壹.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip。

假设急需运用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip。

三.二常用据项目应用

Redis中得以储存各类数据类型,分裂数据类型有其行使处境,具体各数据类型的选用在操作文书档案中均能检索(http://redisdoc.com/index.html):

 图片 12

图片 13

 那里以几个常用项目作为介绍。

3.2.1连接

 图片 14

3.2.2String

String是最常用的1种数据类型,普通的key/value存款和储蓄都得以归为此类,value其实不仅是String,也足以是数字:比如想精晓什么样时候封锁二个IP地址(访问超越三回)。INCRBY命令让这个变得很简单,通过原子递增保持计数。  

 图片 15

 图片 16

图片 17

3.2.3List

在Redis中,List类型是安份守己插入顺序排序的字符串链表。和数据结构中的普通链表1样,大家得以在其头部(left)和尾巴(right)添加新的成分。在插入时,假若该键并不设有,Redis将为该键创制3个新的链表。与此相反,如若链表中存有的成分均被移除,那么该键也将会被从数据库中去除。List中可以包括的最大要素数量是42949672九五。
从要素插入和删除的频率视角来看,倘若大家是在链表的互相插入或删除成分,这将会是尤其火速的操作,即便链表中早就储存了百万条记下,该操作也可以在常量时间内完结。可是需求证实的是,假若成分插入或删除操作是功力于链表中间,那将会是那个低效的。相信对于有精粹数据结构基础的开发者而言,那或多或少并简单通晓。

 图片 18

图片 19

3.2.4Set

在Redis中,大家能够将Set类型看作为未有排序的字符集合,和List类型一样,我们也得以在该项指标数据值上执行添加、删除或判断某一因素是或不是留存等操作。供给表达的是,那么些操作的时光复杂度为O(一),即常量时间内成功次操作。Set可含蓄的最大因素数量是42949672九⑤。
和List类型差异的是,Set集合中分裂意出现重复的因素,那或多或少和C++标准库中的set容器是完全相同的。换句话说,借使频仍加上相同成分,Set上校仅保留该因素的一份拷贝。和List类型比较,Set类型在功效上还留存着2个老大关键的天性,即在劳务器端完结多个Sets之间的集合总括操作,如unions、intersections和differences。由于那么些操作均在服务端达成,因而效用极高,而且也节省了多量的互联网IO开支。

 图片 20

图片 21

3.2.5Hash

咱俩得以将Redis中的Hashes类型看成具有String Key和String
Value的map容器。所以该品种格外适合于存款和储蓄值对象的音信。如Username、Password和Age等。要是Hash中富含很少的字段,那么该项指标数额也将仅占据很少的磁盘空间。每三个Hash能够储存4294967294个键值对。

 图片 22

图片 23

肆.redis的持久化难点

Redis提供了以下三种持久化方式:

a.RDB持久化:
该机制是指在钦定的时日间隔内将内部存款和储蓄器中的数量集快照写入磁盘。   
b.AOF持久化:

该机制将以日记的方式记录服务器所处理的每2个写操作,在Redis服务器运维之初会读取该文件来再度创设数据库,以担保运维后数据库中的数据是完整的。

c.无持久化:

我们能够透过配备的秘诀禁止使用Redis服务器的持久化成效,那样大家就能够将Redis视为3个效果坚实版的memcached了。

d.同时选用AOF和XC60DB。

五.Redis与GIS的咬合:GEO数据类型

Redis三.贰版本中加进了对GEO(地理地方)的支撑。如今其提供了以下二种操作办法:

a.geoadd:扩充有个别地理地点的坐标。

b.geopos:获取某些地理地方的坐标。

c.geodist:获取几个地理地点的离开。

d.georadius:依照给定地理地方坐标获取内定范围内的地理地点集合。

e.georadiusbymember:依照给定地理地方获取钦命范围内的地理地方集合。

f.geohash:获取有些地理地点的geohash值。

因为其面向的为主流互连网环境,所以其扶助的地理坐标系钦点为WGS八四坐标系,其中的geohash编码算法与本身在前头的博客中所提到的均等:WebGIS中吉优Hash编码的商讨和壮大(http://www.cnblogs.com/naaoveGIS/p/5164187.html)。除了我们自己写代码完成该算法,也有已经开源封装好的源码:https://github.com/kungfoo/geohash-java。

 

                                                                     
—–欢迎转发,但保留版权,请于显著处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                         
假使您觉得本文确实帮助了您,能够微信扫①扫,进行小额的打赏和鞭策,感谢^_^

                                                                                                  
               图片 24