`
squll369
  • 浏览: 106781 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

String 顺序倒序迭代实现

阅读更多

面试老是会遇到一些用String来考算法的题目,要取出String里的每一个字符然后处理,比如下面这种:判断下面的字符串是否对称:a,aa,aba.

 

今天就写了一个简单的String迭代,支持顺序,倒序处理,调用stringNext拿到每一个位置上的字符.
代码如下:

 

public class StringOrder {
	
	private String s;
	private boolean order = true;
	private char stringCur;
	public char getStringCur() {
		return stringCur;
	}

	public int getLoc() {
		return loc;
	}

	private int loc;
	
	
	public StringOrder(String s){
		this.s = s;
	}
	
	public StringOrder(String s, boolean order){
		this.s = s;
		this.order = order;
		if(!order){
			loc = s.length();
		}
	}
	
	public String stringNext(){
		if(!order){
			if(loc == 0){
				return null;
			}
			loc--;		
			stringCur = s.charAt(loc);
		}else{
			if(loc == s.length()){
				return null;
			}
			stringCur = s.charAt(loc);
			loc++;
		}	
		return stringCur+"";
	}
}

 

利用这个解决上面的问题,代码如下:

 

public class Test {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		String a = "987t123aad1daa321t789";
		System.out.println(new Test().judgePairString(a));
		new Test().printPairString(a);
	}
	
	public boolean judgePairString(String s){
		StringOrder o1 = new StringOrder(s,true);
		StringOrder o2 = new StringOrder(s,false);
		
		for(int i=0;i<s.length();i++){
			if(!o1.stringNext().equals(o2.stringNext())){
				return false;
			}
		}
		return true;
	}
	
	public void printPairString(String s){
		if(judgePairString(s)){
			for(int i=0;i<s.length()/2;i++){
				System.out.println("PairString[" + i + "]:" + s.charAt(i));
			}
		}else{
			System.out.println("[" + s + "] is not a PairString");
		}
	}
}
 

 

分享到:
评论

相关推荐

    String各个接口模拟实现

    String各个接口模拟实现

    Golang实现字符串倒序的几种解决方案

    本文主要给大家介绍了关于Golang实现字符串倒序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍: 字符串倒置如下: Hello World –&gt; dlroW olleH 解决方案1: length := len(str) ...

    string类函数的c实现

    string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现string类函数的c实现

    基于Keil实现字符串函数string.h的简单应用

    基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用基于Keil实现字符串函数string.h的简单应用...

    C++ String类实现

    C++实现的String类,可以支持UTF-8编码

    string中部分函数的实现方法

    这是一个string基本功能的实现,包括strstr,strcpy等,

    string.h函数的实现

    string.h函数的实现 char *strcpy_1(char *dst,const char *src)  {  while(*dst++=*src++);  return dst;  //notice: wrong return!!!!  } //this is a fault function  // Left it to remind me never ...

    C#实现字符串倒序的写法

    本文实例为大家分享了C#字符串倒序写法的实现代码,供大家参考,具体内容如下 //string concatenation with for loop public string ReverseA(string text) { char[] cArray = text.ToCharArray(); string ...

    string.c简单实现字符串操作 串ADT实现 数据结构实现

    简单实现string.h 完成字符串的操作实现 完成串ADT的实现 加深数据结构的学习

    string类的模拟实现

    string类的模拟实现

    String类的完整实现包括

    *String类中包括以下函数:* *默认构造函数,带参数构造函数 , 拷贝构造函数 *取字符串函数GetString(),取字符串长度函数GetLength(),查找字串位置函数Find() *重载,&gt;&gt;,[],=,+,&gt; *析构函数 *String类中包括2个...

    String底层函数的实现方式

    String底层函数的实现方式

    string .h 的实现

    string.c C中string 操作的具体实现

    自定义string类的实现

    C++的一般编译器都定义和封装了字符串功能,模仿定义string类的实现,可以实现并支持如下功能: (1)赋值(2)拷贝构造 (3)重载“=” (4)m.legnth() 函数测量字符串的长度 (5)m.cat(string const &)连接字符...

    String类的实现源代码

    课程设计String类的实现源代码,采用可视化图形用户界面完成

    C语言实现String操作

    C语言简单实现String, 提供String基础唱作, 如 s_append / s_trim / s_split 等

    string_string家族函数实现_

    string家族函数的实现 通过指针实现 Linux下的c库标准写法 仅供参考学习

    STL库string类的模拟实现

    类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。 总结: 1. string是表示字符串的字符串类 2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的...

    C语言string类的实现

    C语言 string类的实现。配有C标准库函数原型

    C++中string类的模拟实现

    该资源中模拟实现了C++中string类的一些常用接口,包括resize、reserve、insert、erase等等,重载了流插入和流提取操作符以实现对string类对象的输出和输入。其中还关注了深拷贝的问题(由于string类中涉及内存资源...

Global site tag (gtag.js) - Google Analytics